Elasticsearch6.2.3及其head插件安裝 中文分詞 elasticsearch-analysis-ik 拼音分詞 同義詞分詞

1.下載並解壓elasticsearch

官網 http://www.elastic.co/downloads/elasticsearch

本次下載地址 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz

 解壓  tar -zxvf  elasticsearch-6.2.3.tar.gz

2.修改配置elasticsearch.yml文件

 單機版配置

 

# 集羣的名字(默認elasticsearch)
cluster.name: snjx-search
# 節點名字  
node.name: master  
# 數據存儲目錄(多個路徑用逗號分隔)  
path.data: /usr/local/snjx/datas  
# 日誌目錄  
path.logs: /usr/local/snjx/logs  
#本機的ip地址
network.host: 192.168.1.111 
#設置集羣中master節點的初始列表,可以通過這些節點來自動發現新加入集羣的節點
discovery.zen.ping.unicast.hosts: ["192.168.1.111:9300"]
# 設置節點間交互的tcp端口(集羣),(默認9300)  
transport.tcp.port: 9300  
# 監聽端口(默認)  
http.port: 9200  
# 增加參數,使head插件可以訪問es  
http.cors.enabled: true  
http.cors.allow-origin: "*

  集羣配置

 

cluster.name: snjx-search
node.name: node-5
#如果是master節點設置成true
node.master: false
#如果是data節點設置成true
node.data: true
path.data: /usr/local/snjx/datas
path.logs: /usr/local/snjx/logs
network.host: master
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["10.20.23.29:9300", "10.20.23.38:9300","10.20.23.41:9300"]
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#解決跨域問題
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true

 

   config/   jvm.options配置

 

默認1G  由於是筆記本搭建虛機,配置有限僅供學習使用 特設置爲512M 土豪請無視

 如果進行了datas.logs 自定義路徑

 search 用戶需要賦權

 

 3.啓動es

  如果是用root賬號啓動,會報以下錯誤

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
  • 這是出於系統安全考慮設置的條件。由於ElasticSearch可以接收用戶輸入的腳本並且執行,爲了系統安全考慮, 
    建議創建一個單獨的用戶用來運行ElasticSearch

  • 創建search用戶組及search用戶

    groupadd search
    useradd search -g search -p search
    • 1
    • 2
  • 更改elasticsearch文件夾及內部文件的所屬用戶及組爲search:search

    cd /usr/local/snjx/elasticsearch
    chown -R search:search  elasticsearch-6.2.3
    • 1
    • 2
  • 切換到elsearch用戶再啓動      su search 

    cd /usr/local/snjx/elasticsearch/elasticsearch-6.2.3/bin 
    
  • ./elasticsearch  正常啓動
  • ./elasticsearch -d  後臺啓動

 4.http訪問192.168.1.111:9200  5.head插件下載

 

wget  https://github.com/mobz/elasticsearch-head/archive/master.zip

6.安裝nodejs  head插件依賴node環境

 

wget https://npm.taobao.org/mirrors/node/latest-v9.x/node-v9.10.0-linux-x64.tar.gz

 配置下環境變量,編輯vim  /etc/profile添加

#node
export NODE_HOME=/usr/local/snjx/node/node-v9.10.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

執行 source /etc/profile 刷新文件

7.安裝grunt

grunt是基於Node.js的項目構建工具,可以進行打包壓縮、測試、執行等等的工作,head插件就是通過grunt啓動

cd /usr/local/snjx/elasticsearch/elasticsearch-head-master

 

npm install -g grunt-cli  //執行後會生成node_modules文件夾

檢查是否安裝成功

修改hostname  vim /etc/hosts 

重啓生效 查看是否修改成功

hostname

8.修改head插件源碼

修改服務器監聽地址:Gruntfile.js   

在keepalive:true   下面添加  hostname: '*'

修改連接地址:_site/app.js

9.運行head

在elasticsearch-head-master目錄下

 

npm install(安裝下載下來的包)

grunt server

 

後臺啓動elasticsearch-head

nohup grunt server &

 

nohup grunt server &exit

如果想關閉head插件,查找進程命令:

ps aux|grep head

 

10.訪問http://ip:9100

 

 

注意  如果 啓動報錯

 

這裏面很明顯的有兩個參數的值太小

 1.max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

修改/etc/security/limits.conf文件,添加或修改如下行:

*        hard    nofile           65536
*        soft    nofile           65536

2.max virtual memory areas vm.max......

修改 /etc/sysctl.conf 文件,添加如下行:

vm.max_map_count=262144

修改好了以後,然後sysctl -p使系統配置生效,調用sysctl -a查看,發現參數並沒有變動,要重啓纔可以。

中文分詞安裝

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.zip

官網地址   https://github.com/medcl/elasticsearch-analysis-ik

拼音分詞

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.2.3/elasticsearch-analysis-pinyin-6.2.3.zip

官網地址 https://github.com/medcl/elasticsearch-analysis-pinyin

同義詞分詞

官網地址 https://github.com/bells/elasticsearch-analysis-dynamic-synonym/tree/master

./bin/elasticsearch-plugin install https://github.com/bells/elasticsearch-analysis-dynamic-synonym/releases/download/5.1.1/elasticsearch-analysis-dynamic-synonym-5.1.1.zip

手動安裝分詞插件

下載完成後unzip -x elasticsearch-analysis-pinyin-5.6.8.zip       mv /usr/local/snjx/elk/elasticsearch-5.6.8/plugins

ik 帶有兩個分詞器
ik_max_word :會將文本做最細粒度的拆分;儘可能多的拆分出詞語

ik_smart:會做最粗粒度的拆分;已被分出的詞語將不會再次被其它詞語佔有

The plugin includes analyzer: pinyin , tokenizer: pinyin and token-filter: pinyin

 

說明:synonyms_path 是必須要配置的,根據它的值是否是以http://或者https://開頭來判斷是本地文件,還是遠程文件。

interval 非必須配置的,默認值是60,單位秒,表示間隔多少秒去檢查同義詞文件是否有更新。

ignore_case 非必須配置的, 默認值是false。

expand 非必須配置的, 默認值是true。

format 非必須配置的, 默認值是空字符串, 如果爲wordnet,則表示WordNet結構的同義詞。

熱更新同義詞說明

  1. 對於本地文件:主要通過文件的修改時間戳(Modify time)來判斷是否要重新加載。
  2. 對於遠程文件:synonyms_path 是指一個url。 這個http請求需要返回兩個頭部,一個是 Last-Modified,一個是 ETag,只要有一個發生變化,該插件就會去獲取新的同義詞來更新相應的同義詞。

注意: 不管是本地文件,還是遠程文件,編碼都要求是UTF-8的文本文件

 

 

 

發佈了30 篇原創文章 · 獲贊 11 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章