基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程
一、安裝Elasticsearch
Elasticsearch下載地址:http://www.elasticsearch.org/download/
·下載后直接解壓,進(jìn)入目錄下的bin,在cmd下運(yùn)行elasticsearch.bat 即可啟動(dòng)Elasticsearch
·用瀏覽器訪問(wèn): http://localhost:9200/ ,如果出現(xiàn)類似如下結(jié)果則說(shuō)明安裝成功:
{
"name" : "Benedict Kine",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.2.0",
"build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe",
"build_timestamp" : "2016-01-27T13:32:39Z",
"build_snapshot" : false,
"lucene_version" : "5.4.1"
},
"tagline" : "You Know, for Search"
}
其中:
·name———Elasticsearch實(shí)例的名字,默認(rèn)情況下它將從名字列表中隨機(jī)選擇一個(gè),其設(shè)置是在config/elasticsearch.yml文件中;
·version———版本號(hào),以json格式表示了一組信息,其中:
number字段代表了當(dāng)前運(yùn)行Elasticserch的版本號(hào);
build_snashot字段代表了當(dāng)前版本是否是從源代碼構(gòu)建而來(lái);
lucene_version表示Elasticsearch所基于的Lucene的版本;
·tagline———包含了Elasticsearch的第一個(gè)tagline:"You Know, for Search"。
二、RTF版本
初學(xué)者可以首先從Elastisearch的RTF版本入手。RTF是Ready To Fly的縮寫,這是一個(gè)集成了基本插件(如服務(wù)封裝、中文分詞、mapper-attachments、transport-thrift、tools.carrot2等插件)的并帶有示例程序的可以直接上手的建議工程版本。
下載地址: https://github.com/medcl/elasticsearch-rtf
解壓后會(huì)看到其目錄結(jié)構(gòu)。Elasticsearch包含的主要文件夾及功能如下(以TF版本為例):
·bin--包含運(yùn)行Elasticsearch實(shí)例和管理插件的一些腳本;
·config--主要是一些設(shè)置文件
·lib--包含一些相關(guān)的包文件;
·plugins--包含相關(guān)的插件文件等;
·logs--日志文件;
·data--Elasticsearch中存放數(shù)據(jù)的地方;
·works--臨時(shí)文件。
三、插件介紹及安裝
1.Head
Head是一個(gè)用來(lái)監(jiān)控Elasticsearch狀態(tài)的客戶端插件。
安裝:到bin目錄下 plugin install mobz/elasticsearch-head
安裝后再瀏覽器中輸入: http://localhost:9200/_plugin/head/ ,會(huì)打開如下界面:

圖中顯示了一個(gè)節(jié)點(diǎn)Benedict Kine,每個(gè)節(jié)點(diǎn)擁有不同index的數(shù)據(jù),Head提供了HTTP客戶端。
2.Marvel
Marvel是Elasticsearch的圖形化監(jiān)控客戶端,可以用來(lái)查看當(dāng)前的各項(xiàng)狀態(tài)。
安裝:
marvel 是以 elasticsearch 的插件形式存在的,可以直接通過(guò)插件安裝:
# ./bin/plugin -i elasticsearch/marvel/latest
如果你是從官網(wǎng)下載的安裝包,則運(yùn)行:
# ./bin/plugin -i marvel file:///path/to/marvel-latest.zip
運(yùn)行:
在瀏覽器中輸入:http://localhost:9200/_plugin/marvel/ ,會(huì)打開如下界面:

二、借助Head構(gòu)建索引
啟動(dòng)Elasticsearch后,在瀏覽器中訪問(wèn):http://localhost:9200/_plugin/head/ 打開Head工具。
step1:
單擊“新建索引”按鈕來(lái)創(chuàng)建一個(gè)新的索引,在彈出框中輸入索引名稱,如下圖所示。分片數(shù)為5依次為0,1,2,3,4。數(shù)據(jù)副本為1,


在概覽中看到如下結(jié)果說(shuō)明成功創(chuàng)建了索引。圖中帶有粗框的分片副本正是提供的數(shù)據(jù)副本,

step2:
在Head工具的“復(fù)合查詢”(Any Request)標(biāo)簽下,打開“查詢”(Query)選項(xiàng),如下圖所示。

- 輸入擬提交數(shù)據(jù)的索引文件名稱(這里用剛剛建的索引文件名稱myfirstindex)以及type(這里用share)、索引文檔唯一標(biāo)識(shí)符(即索引的id號(hào),這里用1);
- 選擇操作方式,這是選擇POST,POST為相當(dāng)于INSERT;
- 在文本框中輸入擬添加的JSON數(shù)據(jù);
- 提交后,就會(huì)在索引文件myfirstindex的類型文件share中,寫入指定信息。如出現(xiàn)右側(cè)內(nèi)容則標(biāo)識(shí)寫入成功。
三、查詢索引
還是在復(fù)合查詢標(biāo)簽下,選擇GET操作類型(相當(dāng)于SELECT),如下圖,就可以看到該索引文件的詳細(xì)信息。

四、操作說(shuō)明
Elasticsearch的Head中用到了HTTP協(xié)議的4種請(qǐng)求方法,其中:
- POST是向服務(wù)器提交數(shù);
- GET是發(fā)送一個(gè)請(qǐng)求來(lái)取得服務(wù)器上的某一資源;
- PUT和POST都是向服務(wù)器發(fā)送數(shù)據(jù),但PUT通常指定了資源的存放位置;
- DELETE是用來(lái)刪除服務(wù)器上的某個(gè)資源。
五、Mapping簡(jiǎn)述
Elasticsearch中的Mapping類似于靜態(tài)語(yǔ)言中的數(shù)據(jù)類型。但是映像還有一些其他的含義,例如:執(zhí)行一系列的指令,將輸入的數(shù)據(jù)轉(zhuǎn)成可搜索的索引項(xiàng),使用映像可以查詢類型文件的各個(gè)字段的信息。

六、信息檢索
用戶可以利用Head工具,通過(guò)HTTP傳遞參數(shù)的方式來(lái)構(gòu)造一個(gè)簡(jiǎn)單的信息檢索語(yǔ)句。如下圖,指定在myfirstindex索引的share中,搜索字段為city_name其值為北京的檢索請(qǐng)求構(gòu)建方式。

圖的右側(cè)的hits中可以看到返回的結(jié)果,hits表示命中的檢索集合,total表示命中2條記錄,max_score是其評(píng)分。
URL構(gòu)建查詢語(yǔ)句時(shí),_search表示搜索RESTful接口,q后代表查詢條件,q后的=是基于Lucene語(yǔ)法的查詢表達(dá)式。
相關(guān)文章
Java中關(guān)于優(yōu)先隊(duì)列PriorityQueue的使用及相關(guān)方法
這篇文章主要介紹了Java中關(guān)于優(yōu)先隊(duì)列PriorityQueue的使用及相關(guān)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Java實(shí)現(xiàn)的求解經(jīng)典羅馬數(shù)字和阿拉伯?dāng)?shù)字相互轉(zhuǎn)換問(wèn)題示例
這篇文章主要介紹了Java實(shí)現(xiàn)的求解經(jīng)典羅馬數(shù)字和阿拉伯?dāng)?shù)字相互轉(zhuǎn)換問(wèn)題,涉及java輸入輸出及字符串、數(shù)組的遍歷與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
SpringBoot中@Autowired爆紅原理分析及解決
這篇文章主要介紹了SpringBoot中@Autowired爆紅原理分析及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringBoot2.4.2下使用Redis配置Lettuce的示例
這篇文章主要介紹了SpringBoot2.4.2下使用Redis配置Lettuce,Springboot2.4.2下默認(rèn)使用的就是Lettuce而不是Jedis因此無(wú)需在依賴進(jìn)行排除Jedis,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2022-01-01
SpringMVC中的DispatcherServlet初始化流程詳解
這篇文章主要介紹了SpringMVC中的DispatcherServlet初始化流程詳解,DispatcherServlet這個(gè)前端控制器是一個(gè)Servlet,所以生命周期和普通的Servlet是差不多的,在一個(gè)Servlet初始化的時(shí)候都會(huì)調(diào)用該Servlet的init()方法,需要的朋友可以參考下2023-12-12
Springboot-dubbo-fescar 阿里分布式事務(wù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Springboot-dubbo-fescar 阿里分布式事務(wù)的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03

