Elasticsearch學習筆記三

PS:前面兩章已經介紹了ES的基礎及REST API,本文主要介紹ES經常使用的插件安裝及使用。javascript

Elasticsearch-Head  

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

  •   修改elasticsearch.yml,增長跨域的配置(須要重啓es才能生效):
#增長跨域配置:
http.cors.enabled: true
http.cors.allow-origin: "*"
  • 修改Gruntfile.js文件,修改服務監聽地址(增長hostname屬性,將其值設置爲*)

 

  • 修改head/_site/app.js,修改head鏈接es的地址(修改localhost爲本機的IP地址)

 

 

啓動/中止插件

後臺啓動跨域

cd /usr/share/elasticsearch-head/node_modules/grunt/bin/
nohup ./grunt server & exit

中止插件
  使用命令:netstat -ntlp  查看服務就端口,而後使用 kill -9 pid 殺掉進程

啓動成功後,可在瀏覽器訪問插件與ES進行交互

 

IK分詞器

安裝中文分詞插件,這裏使用的是 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提供的,能夠對文本進行最大數量的分詞

相關文章
相關標籤/搜索