PS:前面兩章已經介紹了ES的基礎及REST API,本文主要介紹ES經常使用的插件安裝及使用。javascript
Head是一個用於管理Elasticsearch的web前端插件,該插件在es5版本之後採用獨立服務的形式進行安裝使用(以前的版本能夠直接在es安裝目錄中直接安裝),所以須要安裝nodejs、npm等前端環境。html
yum -y install nodejs
在執行查看版本命令便可查出。前端
[root@192 bin]# node -v
v6.14.3
[root@192 bin]# npm -v
3.10.10
到這裏,npm和nodejs算是安裝成功了!java
若是沒有安裝git,還須要先安裝git:node
yum -y install git
而後安裝elasticsearch-head插件:git
git clone
https://github.com/mobz/elasticsearch-head.git
git下載完成後,進入目錄,進行操做:github
cd elasticsearch-head/
npm install
插件安裝會比較慢,會花費比較長時間,請耐心等待...web
插件啓動前,須要先對插件進行一些相關配置npm
#增長跨域配置:
http.cors.enabled: true
http.cors.allow-origin: "*"
後臺啓動跨域
cd /usr/share/elasticsearch-head/node_modules/grunt/bin/
nohup ./grunt server & exit
中止插件
使用命令:netstat -ntlp 查看服務就端口,而後使用 kill -9 pid 殺掉進程
啓動成功後,可在瀏覽器訪問插件與ES進行交互
安裝中文分詞插件,這裏使用的是 IK,也能夠考慮其餘插件(好比 smartcn)。
$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.0.1/elasticsearch-analysis-ik-6.0.1.zip
上面代碼安裝的是6.0.1版的插件,與 ES 6.0.1配合使用。
接着,從新啓動 Elastic,就會自動加載這個新安裝的插件。
而後,新建一個 Index,指定須要分詞的字段。這一步根據數據結構而異,下面的命令只針對本文。基本上,凡是須要搜索的中文字段,都要單獨設置一下。
$ curl -X PUT 'localhost:9200/accounts' -d ' { "mappings": { "person": { "properties": { "user": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" }, "title": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" }, "desc": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" } } } } }'
上面代碼中,首先新建一個名稱爲accounts
的 Index,裏面有一個名稱爲person
的 Type。person
有三個字段。
- user
- title
- desc
這三個字段都是中文,並且類型都是文本(text),因此須要指定中文分詞器,不能使用默認的英文分詞器。
Elastic 的分詞器稱爲 analyzer。咱們對每一個字段指定分詞器。
"user": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" }
上面代碼中,analyzer
是字段文本的分詞器,search_analyzer
是搜索詞的分詞器。ik_max_word
分詞器是插件ik
提供的,能夠對文本進行最大數量的分詞