4.elasticseach7.0.1安装ik分词插件(2019-05-13)

匿名 (未验证) 提交于 2019-12-02 23:40:02

 

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

 

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

 

首先要安装下elasticseach (安装的版本有要求):

 

ik主页: https://github.com/medcl/elasticsearch-analysis-ik

 

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

最近我的项目里,用的是es7.0.1,Ik对应的版本是7.0.1.

Versions

IK version

ES version

master

7.x -> master

7.0.1

7.0.1

6.3.0

6.3.0

6.2.4

6.2.4

6.1.3

6.1.3

5.6.8

5.6.8

5.5.3

5.5.3

5.4.3

5.4.3

 

1.安装:

[root@bogon root]$ su elastic

[root@bogon root]$ ES_PATH_CONF=/home/es/elasticsearch/config /home/es/elasticsearch-7.0.1/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.0.1/elasticsearch-analysis-ik-7.0.1.zip

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

 

2.重启es:

[root@bogon root]# ps -ef | grep elasticsearch #找到进程号

[root@bogon root]# kill -SIGTERM 进程号

[root@bogon root]# su elastic

[elastic@bogon root]$ ES_PATH_CONF=/home/es/elasticsearch/config sh /home/es/elasticsearch-7.0.1/bin/elasticsearch -d

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

 

 

3.测试(使用Kibana):

1).创建index索引: PUT /index

2).创建映射: POST /index/_mapping

{

    "properties": {

        "content": {..

            "type": "text",

            "analyzer": "ik_max_word",

            "search_analyzer": "ik_max_word"

        }

    }

}

 

3).索引几个文档 :

POST /index/_doc/1

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

 

POST /index/_doc/2

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

 

POST /index/_doc/3

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

 

POST /index/_doc/4

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

 

4).搜索测试:

POST /index/_doc/_search

{

    "query": {

        "match": {

            "content": "中国嫌犯"

        }

    },

    "highlight": {

        "pre_tags": [

            "<tag1>",

            "<tag2>"

        ],

        "post_tags": [

            "</tag1>",

            "</tag2>"

        ],

        "fields": {

            "content": {}

        }

    }

}

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

 

 

文章来源: https://blog.csdn.net/eighthroute/article/details/91389011
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!