基础:ES支持两种同义方式。一种是单向同义词,一种是双向同义词。

臀部,臀,屁股
斑=>斑,雀斑
i-pod,i pod,i pad =>ipod

说明:对于臀部,臀,屁股。我们可以理解成相互完全等价。对于“斑”“雀斑”,如果文章分词后包含“斑”,会自动存入“斑”“雀斑”两个字词,这样搜索斑或者雀斑都会命中该文章。如果使用"i-pod","i pod","i pad"转为"ipod”,那就会出现一个问题就是在因为存储的是"ipod”,所以搜"i pad"就不会命中该文章了。不推荐使用这种方式。

需求:今天有一个需求,我们认为“超声提升”和“超声刀”是一种东西,想实现搜“超声提升”同时出现“超声提升”和“超声刀”的文章。

实践:

第一步、我们先在同义词配置了"超声提升,超声刀",这时候搜索的“超声提升”,发现无法召回超声刀的文章。这是因为虽然配置了同义词,因为旧的ES索引在建立的时候并不知道这对同义词,所以需要重跑索引。

第二步、我们重跑了文章的索引,这时候搜索的“超声提升”,仍然无法召回“超声刀”的文章。这是因为搜索“超声提升”,search_analyzer会把他分词成“超声”和“提升”,而索引中存的是“超声提升”,无法命中。所以需要搜索分词。

第三步、我们分析了“超声提升”,这个词没有比较分词。于是我们把“超声提升”加入分词dict。这样搜索“超声提升”就会按照“超声提升”去搜索。完美解决。

一个案例弄懂ElasticSearch分词匹配原理和同义词相关推荐

  1. java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...

    0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...

  2. 一个案例搞懂工厂模式和单例模式

    一个案例搞懂工厂模式和单例模式 1 单例模式 一个对象只有一个实例 单例类必须自己创建自己的唯一实例. 单例类必须给所有其他对象提供这一实例. 注意:所有的单例模式,应当使其构造方法私有化. 1.1 ...

  3. 99%的人没弄懂volatile的设计原理,更别说灵活运用了

    写volatile的文章非常多,本人也看过许多相关文章,但始终感觉有哪里不太明白,但又说不上来说为什么.可能是过于追求底层实现原理,老想问一个为什么吧. 而写这篇文章的目的很简单,就是突然之间明白了v ...

  4. 一文弄懂区块链技术原理

    前言 近期由于工作需要,于是对区块链相关技术展开了大量的研究和学习.本文将以开发者的角度,对整个区块链行业技术的发展做一次全面的总结和归纳. 文章宗旨是为了帮助大家理解区块链技术出现的目的.能够解决什 ...

  5. 5分钟弄懂:语音识别技术原理

    简要给大家介绍一下语音怎么变文字的吧.希望这个介绍能让所有同学看懂. 首先,我们知道声音实际上是一种波.常见的mp3.wmv等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows P ...

  6. nginx location 匹配 多个规则_三道小练习助你弄懂 Nginx location 匹配

    在 Nginx 中我们可以通过配置 location 指令块,来决定一个请求 url 如何处理.如果我们编写了多条 location 指令块,如何保证各个 location 不会产生冲突?如何理清 l ...

  7. 一个故事看懂AI神经网络工作原理

    我是一个AI神经元 我是一个AI神经元,刚刚来到这个世界上,一切对我来说都特别新奇. 之所以叫这个名字,是因为我的工作有点像人类身体中的神经元. 人体中的神经元可以传递生物信号,给它输入一个信号,它经 ...

  8. 一个故事弄懂域名解析

    点赞后看,养成习惯 喜欢的话 可以点个关注哟 你们的点赞支持对博主们来说很重要哦 !!! 为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 为什么需要域名解析? 02 有关于域名解析的小故事 ...

  9. 一篇文章彻底弄懂零拷贝底层原理

    前言 零拷贝是网络编程的关键,很多性能优化都离不开零拷贝,很多优秀的开源框架底层都用的零拷贝,如Netty.RocketMQ.Spark等 正文 1. 再看IO 在深入零拷贝机制之前,先来了解下传统B ...

最新文章

  1. 讯飞智慧餐厅(安徽赛区)比赛通知
  2. IBM AI辩手对战世界级人类辩手,炒作还是秀肌肉?
  3. python 地理信息_GitHub - sujeek/geospatial-data-analysis-cn: Python地理信息数据教程中文版(GeoPandas、GIS)...
  4. 《Language Implementation Patterns》之访问重写语法树
  5. 【华为云技术分享】敏捷开发落地不实际?原因可能在于你的 IDE 工具
  6. 容量法和库仑法的异同点_卡尔费休滴定仪容量法与库仑法有什么区别
  7. 两位动态数码管电子秒表c语言,清翔电子51单片机6课动态显示数码管作业秒表...
  8. Java21天打卡day18--继承
  9. MOQL--操作数(Operand) (二)
  10. 静态初始化--我的理解
  11. mfc与mysql_MFC与MySql的链接 VS2008
  12. c语言输出指定年份中所有的星期六,用C语言编写程序打印任意年份的日历
  13. 电脑主机前面的耳机插孔没声音怎么办?旧时光 oldtimeblog
  14. 机器学习(6): 决策树算法 小结与实验
  15. 使用ESP8266/ESP8285做一个WIFI中继(WiFi信号放大器)
  16. web项目01-----项目需求分析,需求文档
  17. MES助力日立电梯提升精细化管理水平
  18. 做网站的定律原理和效应
  19. SCDM学习笔记(1)
  20. 群辉linux系统搭建网站,群晖折腾 篇一:群晖Web Station 功能搭建属于自己的照片分享网站...

热门文章

  1. 1619. 音乐节拍
  2. 认识HTTP以及迭代历程
  3. 51中的Rn到底是什么?
  4. python语言创意绘画-Python神笔马良案例集
  5. 医疗设备管理系统源码
  6. win10更新错误0x800f0922的解决方法
  7. 【渗透测试】密码爆破工具——九头蛇(hydra)使用详解及实战
  8. 网链生活LAC是什么?什么是区块链机会
  9. Python 将长度32的UUID 压缩为长度为22的字符串
  10. 在Ubuntu 20.04下安装 ROOT cern