ElasticSearch-5.0.0安裝中文分詞插件IK


Install IK

源碼地址:https://github.com/medcl/elasticsearch-analysis-ik,git clone下來。

1.compile

mvn package

 

copy and unzip target/releases/elasticsearch-analysis-ik-{version}.zip to your-es-root/plugins/ik

2.restart elasticsearch

Tips:

ik_max_word: 會將文本做最細粒度的拆分,比如會將“中華人民共和國國歌”拆分為“中華人民共和國,中華人民,中華,華人,人民共和國,人民,人,民,共和國,共和,和,國國,國歌”,會窮盡各種可能的組合;

ik_smart: 會做最粗粒度的拆分,比如會將“中華人民共和國國歌”拆分為“中華人民共和國,國歌”。

Changes

5.0.0

  • 移除名為 ik 的analyzer和tokenizer,請分別使用 ik_smartik_max_word

IK與Elasticsearch-5.0.0的集成步驟

1.創建索引m8:

PUT 'http://localhost:9200/m8'

2.為索引(m8)及類型(logs)下的字段(message)設置分詞器(分詞器可選ik_smart或ik_max_word):

PUT localhost:9200/m8 -d '
{
    "settings" : {
        "analysis" : {
            "analyzer" : {
                "ik" : {
                    "tokenizer" : "ik_smart"
                }
            }
        }
    },
    "mappings" : {
        "logs" : {
            "dynamic" : true,
            "properties" : {
                "message" : {
                    "type" : "string",
                    "analyzer" : "ik_smart"
                }
            }
        }
    }
}'

關於兩種不同分詞的用處以及區別:
2.1.使用方面的不同:

其中我們在做索引的時候,希望能將所有的句子切分的更詳細,以便更好的搜索,所以ik_max_word更多的用在做索引的時候,但是在搜索的時候,對於用戶所輸入的query(查詢)詞,我們可能更希望得比較准確的結果,例如,我們搜索“無花果”的時候,更希望是作為一個詞進行查詢,而不是切分為"無",“花”,“果”三個詞進行結果的召回,因此ik_smart更加常用語對於輸入詞的分析。
2.2.效率方面的不同:

ik_max_word分詞相對來說效率更加迅速,而ik_smart的效率比不上ik_max_word(個人做索引的時候將兩種分詞器進行嘗試得出的結果,有誤的話,望指正)

 

3.用logstash-5.0.0上傳數據:

logstash -f ../config/input-file.conf

4.測試分詞效果:

POST http://localhost:9200/m8/_analyze?analyzer=ik_smart&text=中文分詞

效果:

5.查詢測試:

GET http://localhost:9200/m8/_search?q=中國

效果:

 


免責聲明!

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



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