在elasticsearch中使用ik中文分词插件

LittleFeiHu LittleFeiHu     2022-08-26     223

关键词:

我这里集成好了一个自带IK的版本,下载即用,

https://github.com/xlb378917466/elasticsearch5.2.include_IK

 添加了IK插件意味着你可以使用ik_smart(最粗粒度的拆分)ik_max_word(最细粒度的拆分)两种analyzer

 你也可以从下面这个地址获取最新的IK源码,自己集成,

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

里面还提供了使用说明,可以很快上手。

一般使用elasticsearch-head测试比较方便。

这个IK分词插件挺好用的,支持自定义分词,更重要的是支持热更新。

比如上面这个应用程序层是被分成了两个词,如果你把应用程序层作为一个词添加到你的自定义词典中,那么结果就会发生微妙的变化,通过这样不断的完善词库,相信搜索的体验会越来越好。

现在IK分词插件也算集成好了,如何使用?

首先新建一个索引,并且给这个索引下的文档类型设置Mapping关系

这里还是继续使用昨天新建的索引twitter作例子,所以只需要给文档类型tweet 新建一个字段Content,并设置这一个字段的Mapping来举例:

http://localhost:9200/twitter/_mapping/tweet/

{
  "properties": {
    "content": {
      "type": "text",
      "store": "no",
      "term_vector": "with_positions_offsets",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "include_in_all": "true",
      "boost": 8
    }
  }
}

 这样一来,后面添加的Content就会使用ik_smart来分词,

添加一条测试数据:

http://localhost:9200/twitter/tweet/1/  选择Put  Method

{
  "content": "应用程序层是一个附加层"
}

 查询测试:

http://localhost:9200/twitter/_search/

使用POST Method,因为我使用ElasticSearch Head 在Get的情况下不返回highlight信息

{
  "query" : { "match" : { "content" : "应用程序层是一个附加层" }},
  "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}

 返回如下:

 

使用应用程序关键词是搜不到内容的,因为分词器不识别 这个词,就是说你要用被你拆分之后的词来搜索,才有匹配的记录。

 

比如下面几个就是被拆分出来的词

 

 

dockerfile构建elasticsearch镜像安装ik中文分词器插件(代码片段)

DockerFile构建ElasticSearch镜像安装IK中文分词器插件为什么要安装IK中文分词器?ES提供的分词是英文分词,对中文做分词时会拆成单字而不是词语,非常不好,因此索引信息含中文时需要使用中文分词器插件。一、环境及文件准备... 查看详情

elasticsearch安装中文分词器(代码片段)

发车   为什么要在elasticsearch中要使用ik这样的中文分词呢,那是因为es提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用。今天我们就尝试安装下IK分词。上... 查看详情

elasticsearch拼音分词和ik分词的安装及使用(代码片段)

...八九使用的都是IK分词器。下载地址:https://github.com/medcl/elasticsearch-analysis-ik2.pinyin分词器的下载安装可以在淘宝、京东的搜索框中输入pinyin就能查找到自己想要的结 查看详情

elasticsearch之中文分词器插件es-ik

 前提什么是倒排索引?Elasticsearch之分词器的作用Elasticsearch之分词器的工作流程Elasticsearch之停用词Elasticsearch之中文分词器Elasticsearch之几个重要的分词器       elasticsearch官方默认的分词插件  1、el... 查看详情

elk----elasticsearch使用ik中文分词器(代码片段)

...的是IK分词器。注意,下载分词器的时候,版本必须要与Elasticsearch安装的版本一致,否则会出现不可描述的错误。下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases注意: es-ik分词插件版本一定要和es安装的版本对应... 查看详情

elasticsearch安装中文分词插件ik

Elasticsearch默认提供的分词器,会把每一个汉字分开,而不是我们想要的依据关键词来分词。比如:curl-XPOST"http://localhost:9200/userinfo/_analyze?analyzer=standard&pretty=true&text=我是中国人"我们会得到这种结果:{tokens:[{token:textstart_offs... 查看详情

elasticsearch实战(二十六)-ik中文分词器(代码片段)

        为什么要在elasticsearch中要使用ik这样的中文分词?因为ES提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用。一、安装        我们可以从 官... 查看详情

《自然语言处理实战入门》文本检索----文本查询实例:elasticsearch配置ik分词器及使用

...配。我们在文本检索过程中,主要使用倒排索引进行,但Elasticsearch默认的分词器将汉语文本直接分成了单个的汉字,正如第五小节代码清单显示的那样,这就会对检索结果产生影响,那么如何在Elasticsearch中引入汉语分词器,使... 查看详情

elasticsearch安装elasticsearch-analysis-ik中文分词器(代码片段)

1,讲分词器的文件夹放入es安装包的plugins,重新启动elasticsearch//查询es运行中的进程pidps-aux|grepelasticsearch//杀死进程kill-9pid//使用es账户启动nohup./elasticsearch&2,重启es,然后在新建index的type表结构时,需要指定将来可能要使用... 查看详情

elasticsearch安装elasticsearch-analysis-ik中文分词器(代码片段)

1,讲分词器的文件夹放入es安装包的plugins,重新启动elasticsearch//查询es运行中的进程pidps-aux|grepelasticsearch//杀死进程kill-9pid//使用es账户启动nohup./elasticsearch&2,重启es,然后在新建index的type表结构时,需要指定将来可能要使用... 查看详情

elasticsearch中文分词(代码片段)

...hobby","text":"听音乐"     中文分词:  IK分词器Elasticsearch插件地址:https://github.com/medcl/elasticsearch-analysis-ik  安装方法:将下载到的elasticsearch-analysis-ik-6.5.4.zip解压到elasticsearch/plugins/ik目录下即可。    unzipelastics... 查看详情

如何在elasticsearch中安装中文分词器(ik)和拼音分词器?

  声明:我使用的Elasticsearch的版本是5.4.0,安装分词器前请先安装maven一:安装mavenhttps://github.com/apache/maven说明:安装maven需要java1.7+编译安装分词器时,可能会报错,报错信息如下:[ERROR]COMPILATIONERROR:[INFO]---------------------------... 查看详情

elasticsearch安装中文分词器插件smartcn

原文:http://blog.java1234.com/blog/articles/373.htmlelasticsearch安装中文分词器插件smartcn elasticsearch默认分词器比较坑,中文的话,直接分词成单个汉字。我们这里来介绍下smartcn插件,这个是官方推荐的,中科院搞的,基本能满足需求... 查看详情

docker安装elasticsearch的中文分词器ik(代码片段)

主要问题一定要保证ElasticSearch和ElasticSearch插件的版本一致我是用的是ElasticSearch是5.6.11版本对应elasticsearch-analysis-ik-5.6.11安装插件在线安装进入容器dockerexec-itelasticsearch/bin/bash在线下载并安装./bin/elasticsearch-plugininstallhttps://github.co... 查看详情

elasticsearch之中文分词器插件es-ik的热更新词库

  前提Elasticsearch之中文分词器插件es-ik的自定义词库      先声明,热更新词库,需要用到,web项目和Tomcat。不会的,请移步Eclipse下Maven新建项目、自动打依赖jar包(包含普通项目和Web项目)Tomcat*的安装... 查看详情

elasticsearch实战(二十六)-ik中文分词器

        为什么要在elasticsearch中要使用ik这样的中文分词?因为ES提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用。一、安装   &... 查看详情

elasticsearch7.8.0版本进阶——ik中文分词器(代码片段)

...IK中文分词器下载地址下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.8.02.2、ES引入IK中文分词器将IK中文分词器安装包解压,然后把解压后的文件夹放入ES根目录下的plugins目录下,重启ES即可使用。注意&... 查看详情

elasticsearch中文分词(ik)

ElasticSearch安装官网:https://www.elastic.co1.ElasticSearch安装1.1.下载安装公共密钥rpm--importhttps://artifacts.elastic.co/GPG-KEY-elasticsearch1.2.在 /etc/yum.repos.d/目录下建立 elasticsearch.repo文件vim/etc/yum 查看详情