elasticsearch IK分词器

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

说明:es默认的分词器对中文的识别不是特别好,一段话的分词是一个一个汉字,这显然没有达到想要的结果。

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

可以安装IK分词器,兼容中文的分词;

IK分词器

安装

安装IK分词器,例如elasticsearch的容器名为es;

(命令方式,安装速度慢,网络状况不好非常容易失败,而且会丢失文件,不推荐使用)

# 进入容器内部
docker exec -it es /bin/bash

# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

#退出
exit

#重启容器
docker restart es

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

(手动拖入)

可以选择在对应网站下载(注意ik版本需要和es版本一致),然后将文件拖入到es容器挂载的数据卷目录下;

# 查看es容器挂载的数据卷路径
docker volume inspect es-plugins

将下载下来的IK分词器文件,解压,复制到此目录下;

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

使用

IK分词器有以下两种模式:

  • ik_smart:最少切分,最少分词数量;

  • ik_max_word:最细切分,最多可分词数;

使用“ik_smart”模式,可以看右侧,分词是符合中文语境的;

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

“ik_max_word”模式

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

扩展词汇&敏感词汇排除

有一些人名、名牌、热词等词汇,在分词时可能会被拆分开,如“王麻子菜刀”,可能被拆分成了“王麻子”、“菜刀”,拆分之后就没有意义了。这些词汇可以添加到IK分词器的扩展字典文件中,使分词时这些词汇被作为一个完整的词划分。

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

另外,也有一些词汇是敏感词汇(政治、宗教、辱骂等等),我们希望在搜索时,这些分词不参与分词和搜索。同样这类词汇也可以添加到IK分词器的停用词典中,使这类敏感词汇不参与分词和搜索。

第一步:修改配置文件

在IK分词器目录下,切换到config目录,打开文件IKAnalyzer.cfg.xml,设置扩展词汇和排除词汇文件名;

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

IKAnalyzer.cfg.xml文件内容

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

第二步:添加词汇

分别在扩展词汇词典、停用词典添加对应的词汇

(扩展词汇文件,ext.dic,该文件不存在,需手动创建)

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

(停用词典文件,stopword.dic,新增一个词汇月亮

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

第三步:重启es

重启es,测试,可以看到分词把“毛源昌眼镜”当做一个词来划分了,达到了想要的结果;

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

同样,月亮被作停用词典中的词汇,未参与分词;

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

注意

需要注意的是,如果一个词汇是一个较为特别的词汇,如“独钓寒江雪”;

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

在分词排除时不会排除掉,因为在分词时,这句词汇不太可能被分为一个完整的词汇,而在停用词典中,是根据完整的词汇来排除的;
elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

所以,做到万无一失,应该把需要排除分词的词汇,先在扩展词典里添加,然后再在停用词典里添加,这样就绝对会被排除掉了;

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

重启es,测试,“独钓寒江雪”被完全排除

elasticsearch IK分词器,elasticsearch,大数据,搜索引擎

总结

es分词对中文兼容不太好,可以选择IK分词器来使用,IK分词器有两种模式,分别是“ik_smart”、“ik_max_word”。

另外,IK分词器支持对词汇进行扩展,可以把一些需要绑定在一起的词汇,不希望被分开的词汇写入到扩展词典中,这些词汇会被当做一个整体参与分词;同样如果需要排除一些词汇,不希望这些词汇参与分词,也可以将这些词汇写入到停用词典中。文章来源地址https://www.toymoban.com/news/detail-603520.html

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

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

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

相关文章

  • 基于Elasticsearch与Hbase组合框架的大数据搜索引擎

    本项目为学校大数据工程实训项目,共开发4周,答辩成绩不错。代码仓库放文章尾,写的不好,代码仅供参考。 对于结构化数据 ,因为它们具有特定的结构,所以我们一般都是可以通过关系型数据库(MySQL,Oracle 等)的二维表(Table)的方式存储和搜索,也可以建立索引。

    2024年02月09日
    浏览(65)
  • Elasticsearch (ES) 搜索引擎: 数据类型、动态映射、多类型(子字段)

    原文链接:https://xiets.blog.csdn.net/article/details/132348634 版权声明:原创文章禁止转载 专栏目录:Elasticsearch 专栏(总目录) ES 映射字段的 数据类型 ,官网文档参考:Field data types。 下面是 ES 常用的一些基本数据类型。 字符串 类型: keyword :类型。 text :文本类型。

    2024年03月23日
    浏览(67)
  • laravel如何使用scout+elasticsearch搜索,并支持IK分词

    本扩展包支持IK分词设置。 在按下文操作前请先阅读 laravel scout 全文搜索文档 安装 您可以通过composer安装软件包 wannanbigpig/laravel-scout-elastic: Laravel 会自动注册驱动服务提供者。 Elasticsearch 配置 安装完成后,您应该使用vendor:publish Artisan命令发布Scout配置文件。该命令将把scou

    2024年02月06日
    浏览(84)
  • elasticsearch(ES)分布式搜索引擎04——(数据聚合,自动补全,数据同步,ES集群)

    **聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近

    2024年02月08日
    浏览(51)
  • ElasticSearch - 基于 拼音分词器 和 IK分词器 模拟实现“百度”搜索框自动补全功能

    目录 一、自动补全 1.1、效果说明 1.2、安装拼音分词器 1.3、自定义分词器 1.3.1、为什么要自定义分词器 1.3.2、分词器的构成 1.3.3、自定义分词器 1.3.4、面临的问题和解决办法 问题 解决方案 1.4、completion suggester 查询 1.4.1、基本概念和语法 1.4.2、示例 1.4.3、示例(黑马旅游)

    2024年02月07日
    浏览(48)
  • 微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群 Sentinel

    聚合(aggregations)可以让我们极其 方便的实现对数据的统计、分析、运算 。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些 统计功能的比数据库的sql要方便的多,而且查询速度非常快 ,可以实现近

    2024年02月11日
    浏览(51)
  • 《Spring Boot 实战派》--13.集成NoSQL数据库,实现Elasticsearch和Solr搜索引擎

             关于搜索引擎 我们很难实现 Elasticseach 和 Solr两大搜索框架的效果;所以本章针对两大搜索框架,非常详细地讲解 它们的原理和具体使用方法, 首先 介绍什么是搜索引擎 、如何用 MySQL实现简单的搜索引擎,以及Elasticseach 的 概念和接口类; 然后介绍Elasticseach

    2023年04月09日
    浏览(91)
  • ES搜索引擎入门+最佳实践(九):项目实战(二)--elasticsearch java api 进行数据增删改查

            本篇是这个系列的最后一篇了,在这之前可以先看看前面的内容: ES搜索引擎入门+最佳实践(一)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(二)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(三)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(四)_flame.liu的博客

    2024年02月12日
    浏览(59)
  • 微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群 微服务保护 Sentinel

    聚合(aggregations)可以让我们极其 方便的实现对数据的统计、分析、运算 。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些 统计功能的比数据库的sql要方便的多,而且查询速度非常快 ,可以实现近

    2024年02月15日
    浏览(56)
  • Java SpringBoot API 实现ES(Elasticsearch)搜索引擎的一系列操作(超详细)(模拟数据库操作)

    小编使用的是elasticsearch-7.3.2 基础说明: 启动:进入elasticsearch-7.3.2/bin目录,双击elasticsearch.bat进行启动,当出现一下界面说明,启动成功。也可以访问http://localhost:9200/ 启动ES管理:进入elasticsearch-head-master文件夹,然后进入cmd命令界面,输入npm run start 即可启动。访问http

    2024年02月04日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包