目录

集成IK分词器

扩展词典使用

停用词典使用

同义词典使用


集成IK分词器

概要:IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。新版本的IKAnalyzer3.0发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。

3.0特性:

1)采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。

2)采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。

3)支持个人词条的优化的词典存储,更小的内存占用。

4)支持用户词典扩展定义。

5)针对Lucene全文检索优化的查询分析器IKQueryParser;采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。

IK分词器有两种分词模式:ik_max_word 和 ik_smart 模式。

1)ik_max_word(常用模式)

将文本做最细粒度拆分

2)ik_smart

将文本做最粗粒度拆分

使用 ik_max_word 结果:

使用 ik_smart 结果

扩展词典使用

扩展词的使用场景:就是不想让哪些词分开,例如:南京市长江大桥  使用 ik_max_wrod 分出来的 江大桥 并没有意义

通过使用 自定义扩展词库 来将不需要分的词进行处理

1).进入到ik分词器的安装目录下的config目录下,新增自定义词典

vim ext_dict.dic

输入:江大桥

2). 把自定义的扩展词文件添加到IKAnalyzer.cfg.xml中

vim IKAnalyzer.cfg.xml

3)重启Elasticsearch

停用词典使用

有些词在文本中出现的频率非常高,但对本文的语义产生不了多大的影响。例如英文的a、an、the、of等。或中文的”的、了、呢等”。这样的词称为停用词。停用词经常被过滤掉,不会被进行索引。在检索的过程中,如果用户的查询词中含有停用词,系统会自动过滤掉。停用词可以加快索引的速度,减少索引库文件的大小

1)进入到ik分词器的安装目录下的config目录下, 新增自定义词典

vim stop_dict.dic

输入

的 了 啊

2)将我们自定义的停用词典文件添加到IKAnalyzer.cfg.xml配置中

3)重启Elasticsearch

同义词典使用

有很多相同意思的词,我们称之为同义词,比如“番茄”和“西红柿”,“馒头”和“馍”等。在搜索的时候,我们输入的可能是“番茄”,但是应该把含有“西红柿”的数据一起查询出来,这种情况叫做同义词查询。

注意:扩展词和停用词是在索引的时候使用,而同义词是检索时候使用。

配置IK同义词
        Elasticsearch 自带一个名为 synonym 的同义词 filter。为了能让 IK 和 synonym 同时工作,我们需要定义新的 analyzer,用 IK 做 tokenizersynonym 做 filter。听上去很复杂,实际上要做的只是加一段配置。

1)创建/config/analysis-ik/synonym.txt 文件,输入一些同义词并存为 utf-8 格式。例如

china,中国

2)创建索引时,使用同义词配置,示例模板如下

PUT /ik_index
{"settings": {"analysis": {"filter": {"word_sync": {"type": "synonym","synonyms_path": "analysis-ik/synonym.txt"}},"analyzer": {"ik_sync_max_word": {"filter": ["word_sync"],"type": "custom","tokenizer": "ik_max_word"},"ik_sync_smart": {"filter": ["word_sync"],"type": "custom","tokenizer": "ik_smart"}}}},"mappings": {"properties": {"name": {"type": "text","analyzer": "ik_sync_smart","search_analyzer": "ik_sync_smart"}}}
}

以上配置定义了 ik_sync_max_word 和 ik_sync_smart 这两个新的 analyzer,对应 IK 的 ik_max_word 和 ik_smart 两种分词策略。ik_sync_max_word 和 ik_sync_smart 都会使用 synonym filter 实现同义词转换

3)到此,索引创建模板中同义词配置完成,搜索时指定分词为 ik_sync_max_word ik_sync_smart

案例:

PUT /duia-es-synonym
{"settings": {"analysis": {"filter": {"word_sync": {"type": "synonym","synonyms_path": "analysis-ik/synonym.txt"}},"analyzer": {"ik_sync_max_word": {"filter": ["word_sync"],"type": "custom","tokenizer": "ik_max_word"},"ik_sync_smart": {"filter": ["word_sync"],"type": "custom","tokenizer": "ik_smart"}}}},"mappings": {"properties": {"name": {"type": "text","analyzer": "ik_sync_max_word","search_analyzer": "ik_sync_max_word"}}}
}

插入一条数据

POST /duia-es-synonym/_doc/1
{"name": "对啊网是中国专业的学习平台"
}

使用同义词“china”进行搜索

搜索引擎ES--IK分词器相关推荐

  1. 【Elasticsearch】es IK分词器的安装

    1.概述 [Elasticsearch]es 7.8.0 唐诗三百首写入 Elasticsearch 会发生什么 之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字 ...

  2. docker使用小记——docker安装es+ik分词器+拼音分词器+kibana

    一.docker安装:Windows Docker 安装 | 菜鸟教程 二.docker换镜像源 修改或新增 /etc/docker/daemon.json vi /etc/docker/daemon ...

  3. ES IK分词器 - 停用词

    安装IK中文分词器 参考github (https://github.com/medcl/elasticsearch-analysis-ik/tree/v7.6.1) 1.download or co ...

  4. 搜索引擎——反向索引原理揭秘及手写ik分词器

    原创不易,转载请标明地址,或者直接附上我的博客首页https://georgedage.blog.csdn.net/ 上篇博客我们说到,数据库为什么不适合搜索引擎的底层存储?,那么什么适合呢? ela ...

  5. Elasticsearch——分布式搜索引擎01(索引库、文档、RestAPI、RestClient、拼音分词器、IK分词器)

    Elasticsearch--分布式搜索引擎01(索引库.文档.RestAPI.RestClient.拼音分词器.IK分词器) 一.初识 elesticsearch 1.1 简介 1.2 倒排索引(重 ...

  6. es ik 词库添加词语_Elasticsearch配置IK分词器的远程词库

    在生活中很多很多地方都涉及到了全文检索,最常见的就好比日常使用到的百度搜索等搜索引擎,也都是基于全文检索来实现的:全文检索种类较多,就好比Elasticsearch.Sorl等. 为Ealsticse ...

  7. ElasticSearch入门简介、安装ES(安装Kibana和IK分词器)使用 Postman连接ES进行测、ESRestAPI(操作索引CRUD操作文档CRUD)、练习

    要理解倒排索引 要能够使用DSL命令操作索引库 要能够使用DSL命令操作文档 要能够使用RestAPI操作索引库.文档 一.ES简介 理解倒排索引的概念和作用 理解es和MySql的区别和使用场景 1 ...

  8. 拾忆Elasticsearch01:Elasticsearch概述及相关ES、IK分词器等下载安装

    为了防止老年痴呆记不住学过的Elasticsearch,在这里写点blog回顾一下 写在前面,建议下载以下出现的Elasticsearch版本,我之前下的7.6.1在这里找不到对应的springboo ...

  9. es ik分词热更新MySQL,ElasticSearch(25)- 改IK分词器源码来基于mysql热更新词库

    代码地址 已经修改过的支持定期从数据库中提取新词库,来实现热更新.代码: https://github.com/csy512889371/learndemo/tree/master/elasticse ...

  10. ES集群添加IK分词器

    ES集群添加IK分词器 ES : 7.5.0 官方文档其实已经够优秀了,毕竟是中文的,这里只给出一些建议. IKAnalyzer.cfg.xml 建议放到插件的目录下,要不然有可能会有一些问题 {pl ...

最新文章

  1. 收藏 | 深度学习中神经网络的可视化解释!
  2. Redis 在CentOS 6上的 安装和部署以及redis的主从复制sentinel实现HA
  3. C#流程控制语句--跳转语句(break,continue,goto,return,)
  4. 如何测试一个电梯,测试方案及测试用例
  5. python 课程设计 夏敏捷_Python课程设计(微课视频版21世纪高等学校通识教育规划教材)/计算机技术入门丛书...
  6. 台式计算机进入安全模式蓝屏,windows进入系统安全模式时蓝屏怎么办?
  7. 让sublime text显示空格,到底是点还是横杠TabError: inconsistent use of tabs and spaces in indentation
  8. 编程之美读书笔记1.3 —— 一摞烙饼的排序
  9. 怎样打开android设备,在app中打开android设备的存储
  10. mapinfo在线地图插件_利用开源软件下载地图和影像瓦片数据(修订版)
  11. java安装包_java JDK安装包的获取与安装
  12. 51单片机贪吃蛇程序
  13. 中国最爱喝奶茶的城市找到了
  14. 9x9九宫格java_9x9九宫格数字填写规律
  15. 公众号引用js sdk ios兼容问题 报 permission value is offline verifying
  16. PAT练习集L1之四(10分题之不仔细看头铁wa题)
  17. if语句——python
  18. 解决Chrome 内置的翻译功能翻译用不了
  19. 江苏移动CM101s-MV100-EMMC- M8233_强刷固件包
  20. Spark 常用算子详解(转换算子、行动算子、控制算子)

热门文章

  1. [ CTF ] WriteUp-2022 College Security Competition Byte Capture The Flag(字节跳动安全范儿高校挑战赛)
  2. 给微电子专业学生的一些建议,如何避免踩坑?
  3. 强制重启计算机_我的计算机如何能够自行重启?
  4. Tecnomatix Plant Simulation 2302
  5. Ubuntu18.04下用信使与Windows下用内网通互传文件
  6. 怎样做好电子游戏名称的翻译
  7. 鼹鼠的故事全集63集 下载地址
  8. 通过build.prop修改手机信息
  9. python123考试上怎么监考_水晶排课怎么创建监考表 安排监考人员的方法
  10. 蚁狮算法(Ant Lion Optimization)