本地elasticsearch中文分词器 ik分词器安装及使用

这篇具有很好参考价值的文章主要介绍了本地elasticsearch中文分词器 ik分词器安装及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ElasticSearch 内置了分词器,如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的中文并不友好,不能按我们的语言习惯进行分词。

ik分词器就是一个标准的中文分词器。它可以根据定义的字典对域进行分词,并且支持用户配置自己的字典,所以它除了可以按通用的习惯分词外,我们还可以定制化分词。

ik分词器是一个插件包,我们可以用插件的方式将它接入到ES。

一、安装

1.1 下载

下载地址:ik分词器地址
注意要选择跟自己es保持一致的版本下载。
本地elasticsearch中文分词器 ik分词器安装及使用

1.2解压

将下载的安装包在es安装目录下的plugins下新建一个ik文件夹、将文件解压。
本地elasticsearch中文分词器 ik分词器安装及使用
本地elasticsearch中文分词器 ik分词器安装及使用

1.3启动

启动成功之后可以看见ik插件已经运行
本地elasticsearch中文分词器 ik分词器安装及使用
也可以通过当前命令查看插件是否安装。
本地elasticsearch中文分词器 ik分词器安装及使用
插箱即用,到此ik分词器的安装就完成了。

二、使用IK分词器

IK分词器有两种分词模式:ik_max_word和ik_smart模式。
本地elasticsearch中文分词器 ik分词器安装及使用

1、ik_max_word

会将文本做最细粒度的拆分,比如会将"曾舒琪董事长早上好"拆分为"曾、舒琪、董事长、董事、长、早上好、早上、上好"

GET /_analyze 
{
  "analyzer": "ik_max_word", // 最细粒度划分
  "text": "曾舒琪董事长早上好"
}

执行结果如下:

{
  "tokens" : [
    {
      "token" : "曾",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "舒琪",
      "start_offset" : 1,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "董事长",
      "start_offset" : 3,
      "end_offset" : 6,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "董事",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 3
    },
    {
      "token" : "长",
      "start_offset" : 5,
      "end_offset" : 6,
      "type" : "CN_CHAR",
      "position" : 4
    },
    {
      "token" : "早上好",
      "start_offset" : 6,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 5
    },
    {
      "token" : "早上",
      "start_offset" : 6,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 6
    },
    {
      "token" : "上好",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 7
    }
  ]
}

2、ik_smart

会做最粗粒度的拆分,比如会将"曾舒琪董事长早上好"拆分成"曾、舒琪、董事长、早上好"

GET /_analyze
{
  "analyzer": "ik_smart",  // 最粗粒度划分
  "text": "曾舒琪董事长早上好"
}

执行结果如下:

{
  "tokens" : [
    {
      "token" : "曾",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "舒琪",
      "start_offset" : 1,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "董事长",
      "start_offset" : 3,
      "end_offset" : 6,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "早上好",
      "start_offset" : 6,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 3
    }
  ]
}

这就是ik分词器两种简单的使用模式

问题

我们使用这两种模式,想让ik分词器把名词进行一个拆开划分,但是有一个问题,曾舒琪这明显就是一个人名,两种模式都并没有把这个词汇拆开到一起

解决方法

其实ik分词器给我们提供了一系列的词典,我们只需要添加一个自己的词典。

1、找到config目录下的xml配置文件
本地elasticsearch中文分词器 ik分词器安装及使用
2、这里我们需要添加我们自己的词典。其实所谓词典就是创建一个名称后缀以dict结尾的文件。
本地elasticsearch中文分词器 ik分词器安装及使用
3、这里我添加了一个shipley_zeng.dict的词典
本地elasticsearch中文分词器 ik分词器安装及使用
4、那这个词典哪里来的呢?凭空出现吗?我们返回上一级目录。可以看见有很多词典、我们随便打开一个看看。
本地elasticsearch中文分词器 ik分词器安装及使用
看看这个main.dict
本地elasticsearch中文分词器 ik分词器安装及使用
可以看见这边有特别多的词汇、这些词汇在实际的应用开发过程当中肯定是不够用的、我们要创建一个属于我们自己的词典。

5、创建一个自己的词典到config目录下,名字跟上面提到的一样叫做shipley_zeng.dict
本地elasticsearch中文分词器 ik分词器安装及使用
内容如下,这边我们要注意一下编码格式为UTF-8
本地elasticsearch中文分词器 ik分词器安装及使用
6、加入这个词典后我们在重新启动es,可以看见已经成功的加载了我们创建的词典
本地elasticsearch中文分词器 ik分词器安装及使用
7、我们在使用 ik_max_word 最细粒度查询看看效果

GET /_analyze 
{
  "analyzer": "ik_max_word", // 最细粒度划分
  "text": "曾舒琪董事长早上好"
}

执行结果如下:

{
  "tokens" : [
    {
      "token" : "曾舒琪",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "舒琪",
      "start_offset" : 1,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "董事长",
      "start_offset" : 3,
      "end_offset" : 6,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "董事",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 3
    },
    {
      "token" : "长",
      "start_offset" : 5,
      "end_offset" : 6,
      "type" : "CN_CHAR",
      "position" : 4
    },
    {
      "token" : "早上好",
      "start_offset" : 6,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 5
    },
    {
      "token" : "早上",
      "start_offset" : 6,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 6
    },
    {
      "token" : "上好",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 7
    }
  ]
}

8、使用 ik_smart 最粗粒度查询看看效果

GET /_analyze
{
  "analyzer": "ik_smart",  // 最粗粒度划分
  "text": "曾舒琪董事长早上好"
}

执行结果如下:

{
  "tokens" : [
    {
      "token" : "曾舒琪",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "董事长",
      "start_offset" : 3,
      "end_offset" : 6,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "早上好",
      "start_offset" : 6,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}

9、我们可以看见、现在不管使用ik_max_word还是ik_smart,他都能将曾舒琪这个词汇拆开组合,达到了我们所需要的诉求。
本地elasticsearch中文分词器 ik分词器安装及使用

总结

以上就是本地elasticsearch中文分词器 ik分词器及使用,希望对刚刚接触es的小伙伴有所帮助,谢谢,如有疑问请随时联系我。文章来源地址https://www.toymoban.com/news/detail-447636.html

到了这里,关于本地elasticsearch中文分词器 ik分词器安装及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ElasticSearch:centos7安装elasticsearch7,kibana,ik中文分词器,云服务器安装elasticsearch

    ElasticSearch:centos7安装elasticsearch7,kibana,ik中文分词器,云服务器安装elasticsearch

    系统:centos7 elasticsearch: 7.17.16 安装目录:/usr/local 云服务器的安全组:开放 9200 和5601的端口 1、安装 2、修改es的配置文件 注意:es集群启动后,所有节点的cluster.initial_master_nodes: [\\\"node-1\\\"] 都要注释掉。 3、修改jvm.options 可能出现报错 1、配置elasticsearch.yml   错误内容 : the de

    2024年02月03日
    浏览(10)
  • Linux下安装ElasticSearch-analysis-ik中文分词器插件,以及可能出现的异常处理

    Linux下安装ElasticSearch-analysis-ik中文分词器插件,以及可能出现的异常处理

            注意:安装可以采用在线方式、离线方式,但是不建议在线安装,速度超级慢,本文只介绍离线安装方式                 下载地址:https://github.com/medcl/elasticsearch-analysis-ik                 切记选择版本需要跟ElasticSearch保持一致,否则可能会出现一些未知的异

    2024年02月07日
    浏览(16)
  • Elasticsearch7.15.2 安装ik中文分词器后启动ES服务报错的解决办法

    Elasticsearch7.15.2 安装ik中文分词器后启动ES服务报错的解决办法

    下载elasticsearch ik中文分词器,在elasticsearch安装目录下的plugins文件夹下创建名为ik的文件夹,将下载的ik中文分词器解压缩到新建的ik文件夹下,再次运行 ./bin/elasticsearch启动ES服务时出现以下错误: Exception in thread \\\"main\\\" java.nio.file.NotDirectoryException: /Users/amelia/work/elasticsearch-7.1

    2024年02月12日
    浏览(9)
  • Elasticsearch之ik中文分词篇

    es在7.3版本已经支持中文分词,由于中文分词只能支持到单个字进行分词,不够灵活与适配我们平常使用习惯,所以有很多对应中文分词出现,最近使用的是ik分词器,就说说它吧。 安装可以百度下有很多教程,需要注意的是ik分词器的版本要跟es版本对应上,避免出现不必要

    2024年02月02日
    浏览(9)
  • Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示

    Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示

    首先给出自己使用版本的网盘链接:自己的版本7.17.14 链接:https://pan.baidu.com/s/1FSlI9jNf1KRP-OmZlCkEZw 提取码:1234 一般情况下 Elastic Search(ES) 并不单独使用,例如主流的技术组合 ELK(Elasticsearch + Logstash + Kibana ) 1. Elasticsearch下载 下载之前,先看下和 JDK 版本的对应关系,版本

    2024年02月05日
    浏览(11)
  • ElasticSearch之IK分词器安装以及使用介绍

    ElasticSearch之IK分词器安装以及使用介绍

    elasticsearch 默认的内置分词器对中文的分词效果可能并不理想,因为它们主要是针对英文等拉丁语系的文本设计的。如果要在中文文本上获得更好的分词效果,我们可以考虑使用中文专用的分词器。 IK 分词器是一个开源的中文分词器插件,特别为 Elasticsearch 设计和优化。它在

    2024年02月13日
    浏览(11)
  • Elasticsearch教程(35) ik中文分词器+pinyin拼音分词器+同义词

    Elasticsearch教程(35) ik中文分词器+pinyin拼音分词器+同义词

    闲来无事,发现上一篇ES博客还是 去年9月份 写的中文ik分词器 pinyin 首字母 search_as_you_type 组合使用,该篇文章还挖了一个 大坑 没有填,快一年了,是时候填下坑了。 针对股票查询这个特点场景,再结合一般使用者的搜索习惯,暂时确定如下7种期望效果。 上一篇博客Elast

    2023年04月09日
    浏览(9)
  • es elasticsearch 十 中文分词器ik分词器 Mysql 热更新词库

    es elasticsearch 十 中文分词器ik分词器 Mysql 热更新词库

    目录 中文分词器ik分词器 介绍 安装 使用分词器 Ik分词器配置文件 Mysql 热更新词库 介绍 中文分词器按照中文进行分词,中文应用最广泛的是ik分词器 安装 官网下载对应版本zip 下载  放到  plugins 目录 新建 ik文件夹 考入解析zip 重启 es //分成小单词 使用分词器 ik_max_word分成

    2024年02月07日
    浏览(7)
  • elasticsearch 安装 IK 中文分词器插件提示找不到文件的异常(Exception in thread “main“ java.nio.file.NoSuchFileException)

    elasticsearch 安装 IK 中文分词器插件提示找不到文件的异常(Exception in thread “main“ java.nio.file.NoSuchFileException)

    错误截图 在命令行窗口,执行如下命令安装 IK 中文分词器 失败。 错误日志 1、自己到github下载对应版本的ik中文分词器 上面命令中两个插件版本号应该和 Elasticsearch 的版本保持一致,我现在用的是 7.14.1 版本。 首先版本和命令是对得上的。 命令行窗口通过命令下载失败的话

    2024年04月11日
    浏览(10)
  • Elasticsearch7.8.0版本进阶——IK中文分词器

    Elasticsearch7.8.0版本进阶——IK中文分词器

    通过 Postman 发送 GET 请求查询分词效果,在消息体里,指定要分析的文本 输出结果如下: 由上图输出结果可知,ES 的默认分词器无法识别中文中测试、单词这样的词汇,而是简单的将每个字拆完分为一个词,这样的结果显然不符合我们的使用要求,所以我们需要下载 ES 对应

    2024年02月01日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包