elasticsearch中ANSJ中文分詞處理

這兩天又在折騰ES,之前在centOS上有裝過elasticsearch2.4.3和5.3.1。然後需要對中文進行分詞,老大建議用ANSJ,所以放棄了使用IK分詞器。

但是在裝ANSJ的時候出現了問題,貌似並木有合適的版本源。在成功把虛擬機玩掛了之後還是老老實實用了2.3.1版本,至於ES環境的相關配置可以參考之前的博文。

不說廢話了,開工。

ES如果要拿來做ANSJ中文分詞的話,建議使用如下圖所示版本,可以少走不少彎路。至於其它版本、不推薦,如果時間充裕的話可以玩一玩。


在elasticsearch安裝目錄的bin目錄下執行:

./plugin install http://maven.nlpcn.org/org/ansj/elasticsearch-analysis-ansj/2.3.1/elasticsearch-analysis-ansj-2.3.1-release.zip

等待分詞器安裝...


創建測試索引

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" }
            }
        }
    }
}'

注意:  -XPUT後的IP 127.0.0.1這裏如果在elasticsearch.yml中更改爲了虛擬機的IP則需要在輸入時改變IP。

添加索引內容

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

IP是否更改同樣看之前是如何配置的

將ANSJ設置爲默認分詞方法

在elasticsearch.yml加入如下配置:

#默認分詞器,索引 
index.analysis.analyzer.default.type: index_ansj 
#默認分詞器,查詢 
index.analysis.analyzer.default_search.type: query_ansj

索引分詞

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

瀏覽器測試的相關結果:

相關參考:https://www.oschina.net/news/72833/ansj-elasticsearch-2-3-1





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章