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

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

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


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

step2:
在Head工具的“復合查詢”(Any Request)標簽下,打開“查詢”(Query)選項,如下圖所示。

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

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

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

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

