From here and here .
The IK Analysis plugin integrates Lucene IK analyzer (http://code.google.com/p/ik-analyzer/ ) into elasticsearch, support customized dictionary.
Install Download the package file from here , note that using the same version number as the ElasticSearch you installed. In my case it’s “v6.6.1 “.
Run the following commands to install.
1 2 3 cd your-es-root/plugins/ && mkdir ikcd ikunzip your-es-root/plugins/ik
Quick Example 1.create a index
1 curl -XPUT http://localhost:9200/index
2.create a mapping
1 2 3 4 5 6 7 8 9 10 11 curl -XPOST http://localhost:9200/index/fulltext/_mapping -H 'Content-Type:application/json' -d' { "properties": { "content": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" } } }'
3.index some docs
1 2 3 4 5 6 7 8 9 10 11 12 curl -XPOST http://localhost:9200/index/fulltext/1 -H 'Content-Type:application/json' -d' {"content":"美国留给伊拉克的是个烂摊子吗"} ' curl -XPOST http://localhost:9200/index/fulltext/2 -H 'Content-Type:application/json' -d' {"content":"公安部:各地校车将享最高路权"} ' curl -XPOST http://localhost:9200/index/fulltext/3 -H 'Content-Type:application/json' -d' {"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"} ' curl -XPOST http://localhost:9200/index/fulltext/4 -H 'Content-Type:application/json' -d' {"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"} '
4.query with highlighting
1 2 3 4 5 6 7 8 9 10 11 12 curl -XPOST http://localhost:9200/index/fulltext/_search -H 'Content-Type:application/json' -d' { "query" : { "match" : { "content" : "中国" }}, "highlight" : { "pre_tags" : ["<tag1>", "<tag2>"], "post_tags" : ["</tag1>", "</tag2>"], "fields" : { "content" : {} } } } '
Result is:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 { "took" : 14, "timed_out" : false , "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 2, "max_score" : 2, "hits" : [ { "_index" : "index" , "_type" : "fulltext" , "_id" : "4" , "_score" : 2, "_source" : { "content" : "中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首" }, "highlight" : { "content" : [ "<tag1>中国</tag1>驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首 " ] } }, { "_index" : "index" , "_type" : "fulltext" , "_id" : "3" , "_score" : 2, "_source" : { "content" : "中韩渔警冲突调查:韩警平均每天扣1艘中国渔船" }, "highlight" : { "content" : [ "均每天扣1艘<tag1>中国</tag1>渔船 " ] } } ] } }
Dictionary Configuration “IKAnalyzer.cfg.xml” can be located at “{conf}/analysis-ik/config/IKAnalyzer.cfg.xml” or “{plugins}/elasticsearch-analysis-ik-*/config/IKAnalyzer.cfg.xml”:
1 2 3 4 5 6 7 8 9 10 11 12 13 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd" > <properties > <comment > IK Analyzer 扩展配置</comment > <entry key ="ext_dict" > custom/mydict.dic;custom/single_word_low_freq.dic</entry > <entry key ="ext_stopwords" > custom/ext_stopword.dic</entry > <entry key ="remote_ext_dict" > location</entry > <entry key ="remote_ext_stopwords" > http://xxx.com/xxx.dic</entry > </properties >
More details can be found in the IK official readme file here .