java1234开源博客系统
博客信息

elasticseach安装ik分词插件

发布时间:『 2019-01-11 19:26』  博客类别:elasticsearch  阅读(4888) 评论(0)

elasticseach默认所有分词解析器对中文都不友好,我们开发建议用Ik分词;


IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IK Analyzer 3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。


首先大伙要安装下elasticseach (安装的版本有要求,具体往下看)请参考:http://blog.java1234.com/blog/articles/343.html


ik主页我们看下 https://github.com/medcl/elasticsearch-analysis-ik


这里就有要求了,ik对应了es版本,我们要整合ik,要用对应的es版本,否则可能会有奇葩问题。

最近我的项目里,用的是es6.3.0,Ik对应的版本是6.3.0

Versions

IK versionES version
master6.x -> master
6.3.06.3.0
6.2.46.2.4
6.1.36.1.3
5.6.85.6.8
5.5.35.5.3
5.4.35.4.3
5.3.35.3.3
5.2.25.2.2
5.1.25.1.2
1.10.62.4.6
1.9.52.3.5
1.8.12.2.1
1.7.02.1.1
1.5.02.0.0
1.2.61.0.0
1.2.50.90.x
1.1.30.20.x
1.0.00.16.2 -> 0.19.0


  • optional 1 - download pre-build package from here: https://github.com/medcl/elasticsearch-analysis-ik/releases

    create plugin folder cd your-es-root/plugins/ && mkdir ik

    unzip plugin to folder your-es-root/plugins/ik

  • optional 2 - use elasticsearch-plugin to install ( supported from version v5.5.1 ):

    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

    NOTE: replace 6.3.0 to your own elasticsearch version


两种安装方式 ,第一种原始点,下载解压;第二种简单方便;我们用第二种;


安装后,plugins下,会有一个analysis-ik目录,目录下有jar包和配置文件

1.jpg


然后我们重启es;


我们还得安装下head插件:http://blog.java1234.com/blog/articles/355.html


ik分词有两种ik_smart , ik_max_word,强烈建议用后者ik_max_word 适合商用,分词结果很多,提高命中率;


测试:

创建index索引  put http://localhost:9200/index  


创建映射  post  http://localhost:9200/index/fulltext/_mapping  

{

        "properties": {

            "content": {

                "type": "text",

                "analyzer": "ik_max_word",

                "search_analyzer": "ik_max_word"

            }

        }


}


索引几个文档 

post  http://localhost:9200/index/fulltext/1

{"content":"美国留给伊拉克的是个烂摊子吗"}


post  http://localhost:9200/index/fulltext/2

{"content":"公安部:各地校车将享最高路权"}


post  http://localhost:9200/index/fulltext/3

{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}


post  http://localhost:9200/index/fulltext/4

{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}


然后我们来搜索测试:

post http://localhost:9200/index/fulltext/_search/

{

    "query" : { "match" : { "content" : "中国嫌犯" }},

    "highlight" : {

        "pre_tags" : ["<tag1>", "<tag2>"],

        "post_tags" : ["</tag1>", "</tag2>"],

        "fields" : {

            "content" : {}

        }

    }

}


2.jpg


查询的时候也进行了分词 以及对索引的分词结果 进行分词检索,然后提取结果。


                                欢迎扫码关注Java1234微信公众号,一起学习Java

                                                      111.jpg




关键字:   elasticseach     ik分词  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有