前言
最近項目里為了加快后台系統的搜索速度,決定接入開源的搜索引擎,於是大家都在對比較常用的幾個開源做技術調研,比如Lucene+盤龍分詞
,Solr
,還有本篇要介紹的Elasticsearch
。話不多提,直接進入主題。
一、安裝JDK
- 由於Elasticsearch v5.4.2需要Java 8或者更新版本的java,我們可以去Oracle官網下載,也可以選擇使用OpenJDK。
- 設置Java環境變量
JAVA_HOME
=C:\Program Files (x86)\Java\jdk1.8.0_131
CLASSPATH
=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
PATH
= 原PATH+;%JAVA_HOME%\bin;
- 驗證Java環境是否安裝成功,以及環境變量是否設置正確。在
cmd
窗口執行javac
命令,若結果如下圖,則說明Java環境已經安裝正確。
二、安裝Elasticsearch
- 下載。從官網下載Elasticsearch zip4.入2.zip 。
- 解壓文件。將下載的zip文件解壓到
C:\elasticsearch\elasticsearch-5.4.2/
,目錄結構如下圖:
- 啟動Elasticsearch 。打開
cmd
窗口,進入C:\elasticsearch\elasticsearch-5.4.2\bin
,執行腳本elasticsearch.bat
,若結果如下圖,則Elasticsearch 啟動成功。
- 驗證Elasticsearch是否安裝成功。如上圖,Elasticsearch 默認使用的是
9200
端口,接下來在瀏覽器中打開鏈接http://localhost:9200,返回如下結果則說明安裝成功。
{
"name" : "KPIXVlC",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "uCSF389FQISmiuK3__BSHA",
"version" : {
"number" : "5.4.2",
"build_hash" : "929b078",
"build_date" : "2017-06-15T02:29:28.122Z",
"build_snapshot" : false,
"lucene_version" : "6.5.1"
},
"tagline" : "You Know, for Search"
}
三、安裝Elasticsearch-Head
如下圖,Elasticsearch Head在5.x版本中已經不再以插件的形式存在,而是作為了一個獨立的web了。
- 安裝
// 從GitHug下載Head
git clone git://github.com/mobz/elasticsearch-head.git
// 進入下載好的目錄
cd elasticsearch-head
// 還原nmp包
npm install
// 運行
npm run start
- 驗證。在瀏覽器中打開鏈接http://localhost:9100,如出現下圖,則說明安裝成功
四、安裝ik分詞器
git clone --branch v5.4.2 https://github.com/medcl/elasticsearch-analysis-ik.git
2. 打包。在下載好的文件夾中執行命令
mvn package
3. 解壓。在Elasticsearch安裝目錄下的文件夾plugins中新建文件夾ik,將上一步中生成的elasticsearch-analysis-ik-5.4.2.zip
解壓到這里,如下圖:
- 檢驗ik安裝結果。重啟Elasticsearch,在Sense插件中輸入如下內容
GET default-index/_analyze?analyzer=ik_smart&pretty=true
{
"text":"我的家鄉是武漢,我愛美麗的江城"
}
如安裝正常,結果如下
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "家鄉",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 1
},
{
"token": "武漢",
"start_offset": 5,
"end_offset": 7,
"type": "CN_WORD",
"position": 2
},
{
"token": "我",
"start_offset": 8,
"end_offset": 9,
"type": "CN_CHAR",
"position": 3
},
{
"token": "愛美麗",
"start_offset": 9,
"end_offset": 12,
"type": "CN_WORD",
"position": 4
},
{
"token": "江城",
"start_offset": 13,
"end_offset": 15,
"type": "CN_WORD",
"position": 5
}
]
}
到此Elasticsearch,Elasticsearch Head, ik分詞器都已經安裝成功。
注意:安裝ik分詞器過程中發現與老版本2.x.x有兩點不同:
- 不需要修改Elasticsearch配置文件。Elasticsearch的配置文件路徑為
elasticsearch.yml
,在文件最后加入如下內容:index.analysis.analyzer.ik.type : "ik"
- 測試ik分詞是否安裝成功時,使用的是
ik_smart
而不是ik
。查看文檔,現在支持ik_smart
與ik_max_word
。