ElasticSearch5.3安裝IK分詞器並驗證


ElasticSearch5.3安裝IK分詞器

之前使用Elasticsearch安裝head插件成功了,但是安裝IK分詞器卻失敗了。貌似是ElasticSearch5.0以后就不支持直接在elasticsearch.yml中配置IK了。原因下面會說明。
首先下載:
https://www.elastic.co/downloads/elasticsearch
https://github.com/medcl/elasticsearch-analysis-ik
,最新版本貌似是5.3 了。

第一步 預處理:

  1. 解壓elasticsearch-5.3.0.zip>D:\programfiles\softtools\elasticsearch\elasticsearch-5.3.0
  2. 解壓elasticsearch-analysis-ik-5.3.0>D:\programfiles\softtools\elasticsearch\plugins\elasticsearch-analysis-ik-5.3.0
  3. 編譯elasticsearch-analysis-ik插件 cmd>D:\programfiles\softtools\elasticsearch\plugins\elasticsearch-analysis-ik-5.3.0>mvn clean package

第二步 配置:

  1. IK配置,如下圖是IK分詞器config目錄下的配置D:\programfiles\softtools\elasticsearch\plugins\elasticsearch-analysis-ik-5.3.0\config
    這里寫圖片描述

  2. 在D:\programfiles\softtools\elasticsearch\elasticsearch-5.3.0\config目錄中新建ik文件夾,把上圖中的IK配置文件放入ElasticSearch目錄中的D:\programfiles\softtools\elasticsearch\elasticsearch-5.3.0\config\ik目錄下

這里寫圖片描述
ik里面的內容就是 第二步:1.IK配置 里面的配置。
3. 配置IK分詞器
下圖是通過mvn命令編譯后生成的zip包
這里寫圖片描述

將上圖中的zip包放入D:\programfiles\softtools\elasticsearch\elasticsearch-5.3.0\plugins\ik (ps:ik目錄沒有的話自己新建一個就好),進行解壓
結果如下圖所示:

這里寫圖片描述
整個安裝就完成了。

第三步 測試:
1. 修改elasticsearch.yml中的配置
設置cluster.name,node.name,同時解開這兩個配置的注釋
設置http.port:9200,其他不需要增加配置了
2. windows下雙擊D:\programfiles\softtools\elasticsearch\elasticsearch-5.3.0\bin\elasticsearch.bat
不報錯說明安裝成功。
這里寫圖片描述
3. 安裝Http連接訪問工具,比如火狐插件httpRequester,安裝完成后會在火狐瀏覽器右上角出現插件的標示。
4. 創建索引
這里寫圖片描述

content to send:
{
    "settings" : {
        "analysis" : {
            "analyzer" : {
                "ik" : {
                    "tokenizer" : "ik_smart"
                }
            }
        }
    },
    "mappings" : {
        "logs" : {
            "dynamic" : true,
            "properties" : {
                "message" : {
                    "type" : "string",
                    "analyzer" : "ik_smart"
                }
            }
        }
    }
}

   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

點擊Put按鈕,出現圖右邊的返回值,說明創建索引成功。
5. 進行分詞測試:
這里寫圖片描述

這里寫圖片描述

安裝過程遇到的坑:
1.將網上對使用IK的配置放到elasticsearch.yml中就會報如下的錯誤:
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: node settings must not contain any index level settings
這個無論怎么想都不明白,而且網上還沒有幾個人遇到過這種情況。

2.Caused by: java.lang.IllegalStateException: jar hell!
將IK編譯出來的jar,和source.jar兩個文件放入elasticsearch的lib里后就出現了,有人說是版本問題,但是我選擇的兩者都是最新版本,並且對應。這里是因為lib里面有IK了,然后elasticsearch去讀取plugin文件夾下的插件的時候又裝載了一次,於是就出現了這個問題。將lib里的IK jar包刪除,改從plugins里加載就沒有問題了。網上也有不少是這樣做的,但是確實這么做不正確。
在D:\programfiles\softtools\elasticsearch\elasticsearch-5.3.0\logs會看到相應的錯誤日志。
3. Exception in thread “main” java.lang.IllegalStateException: Could not load plugin descriptor for existing plugin [analysis-ik]. Was the plugin built before 2.0?
Likely root cause: java.nio.file.NoSuchFileException: /home/es/es2/plugins/analysis-ik/plugin-descriptor.properties
出現上面的異常是我一開始把編譯出來的jar包放入D:\programfiles\softtools\elasticsearch\elasticsearch-5.3.0\plugins\ik里面了,其實是要把D:\programfiles\softtools\elasticsearch\plugins\elasticsearch-analysis-ik-5.3.0\target\releases\elasticsearch-analysis-ik-5.3.0.zip解壓到那個ik目錄下面。
4. 為什么沒有在elasticsearch.yml配置IK相關的分詞屬性呢
5. 在github上 https://github.com/medcl/elasticsearch-analysis-ik的使用文檔說了:
這里寫圖片描述

5.0.0及其以后就不會上面兩個分詞器了,而使用兩個參數去替代,同時根據上面的使用文檔來說,作者也沒有說明要針對IK配置elasticsearch.yml。
總體來說還是遇到一定坎坷的,網上很多ES的文章對於新版本都不適用了。我從新將5.0.0的安裝環境全部刪除然后引入最新版本,才搞定了IK分詞器。最新版本的ES安裝head插件應該沒有什么問題了,畢竟head也沒有要求要對5.0.0以后的版本進行安裝配置的改動。

原文地址:https://blog.csdn.net/u010504064/article/details/70214040


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM