基於 Ansj 的 elasticsearch 2.3.1 中文分詞外掛
阿新 • • 發佈:2019-01-27
前言
這是一個elasticsearch的中文分詞外掛,基於Ansj中文分詞。發起者Onni大神。
2.3.1外掛安裝
進入Elasticsearch目錄執行如下命令
進入es目錄執行如下命令 ./bin/plugin install http://maven.nlpcn.org/org/ansj/elasticsearch-analysis-ansj/2.3.1/elasticsearch-analysis-ansj-2.3.1-release.zip
更新內容
-
elasticsearch更新2.3.1
-
ansj_seg升級至3.7.3
-
elasticsearch更新2.1.1
-
ansj_seg升級至3.5
-
新增http的_ansj介面,用於檢視ansj分詞詞性
-
新增http的_cat/ansj介面,作用同上,顯示為cat方式
-
新增http的_cat/[index]/analyze介面,和_analyze作用一樣,顯示為cat方式
-
更方便的配置
測試
-
建立測試索引
curl -XPUT 127.0.0.1:9200/test -d '{ "settings" : { "number_of_shards" : 1, "number_of_replicas" : 0 }, "mappings" : { "type1" : { "_all" : { "enabled" : false }, "properties" : { "name" : { "type" : "string", "analyzer" : "index_ansj", "search_analyzer" : "query_ansj" } } } } }'
-
新增索引內容
curl -XPUT 'http://127.0.0.1:9200/test/test/1' -d '{ "name" : "中國人民萬歲", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }'
-
查詢索引
瀏覽器訪問: http://127.0.0.1:9200/test/test/_search?q=name:%E4%B8%AD%E5%9B%BD
-
如果你想把ansj作為你的預設分詞需要在elasticsearch.yml加入如下配置:
#預設分詞器,索引 index.analysis.analyzer.default.type: index_ansj #預設分詞器,查詢 index.analysis.analyzer.default_search.type: query_ansj
關於分詞器不得不說的那點小事
目前預設內建三個分詞器 當然如果你有心仔細觀察日誌看到了例項化了n多分詞器如下 regedit analyzer named : index_ansj regedit analyzer named : query_ansj regedit analyzer named : to_ansj regedit analyzer named : dic_ansj regedit analyzer named : user_ansj regedit analyzer named : search_ansj why???? 額 只有三個其他都是別名
索引分詞
index_ansj 是索引分詞,儘可能分詞處所有結果 example http://127.0.0.1:9200/_cat/test/analyze?text=%E5%85%AD%E5%91%B3%E5%9C%B0%E9%BB%84%E4%B8%B8%E8%BD%AF%E8%83%B6%E5%9B%8A&analyzer=index_ansj 六味 0 2 0 word 地 2 3 1 word 黃丸軟 3 6 2 word 膠囊 6 8 3 word 六味地黃 0 4 4 word 地黃 2 4 5 word 地黃丸 2 5 6 word 軟膠 5 7 7 word 軟膠囊 5 8 8 word
搜尋分詞 (search_ansj=to_ansj=query_ansj)
query_ansj 是搜尋分詞,是索引分詞的子集,保證了準確率 example http://127.0.0.1:9200/_cat/test/analyze?text=%E5%85%AD%E5%91%B3%E5%9C%B0%E9%BB%84%E4%B8%B8%E8%BD%AF%E8%83%B6%E5%9B%8A&analyzer=query_ansj 六味 0 2 0 word 地 2 3 1 word 黃丸軟 3 6 2 word 膠囊 6 8 3 word
使用者自定義詞典優先的分詞方式 (user_ansj=dic_ansj)
dic_ansj 是使用者自定義詞典優先策略 http://127.0.0.1:9200/_cat/test/analyze?text=%E5%85%AD%E5%91%B3%E5%9C%B0%E9%BB%84%E4%B8%B8%E8%BD%AF%E8%83%B6%E5%9B%8A&analyzer=dic_ansj 六味地黃 0 4 0 word 丸 4 5 1 word 軟膠囊 5 8 2 word