同义词&近义词解决方案(个人兴趣实践 & 公司分享课)

一、背景

1、同义词

指意义相同的一组词语,意义相同的同义词也叫等义词。
同义词百度百科

2、近义词

指词汇意义相同或相近的词语。
如“美好”和“美妙”、“懒惰”和“怠惰”、“枯萎”和“干枯”、“宽敞”和“宽阔”。
与“近义词”意思相近的词为“同义词”。
近义词百度百科

3、实际业务场景

搜索“苹果”关键字,可能想购买吃的“苹果”,也可能想购买“苹果手机”、“iphone13”
实际业务场景

二、技术实现方案

  • Elasticsearch:实现搜索系统
  • IK分词器:实现商品名称的自动分词。例:“史上最强iphone13Pro” → “史上”、“最强”、“史上最强”、“iphone”、“13”、“Pro”、“13Pro”、“iphone13” 等
  • elasticsearch-analysis-dynamic-synonym 插件:同义词热更新插件,支持本地文件更新,http远程文件更新

三、下载地址

  • ES下载地址:https://www.elastic.co/cn/downloads/elasticsearch
  • IK分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
  • elasticsearch-analysis-dynamic-synonym 插件GitHub: https://github.com/bells/elasticsearch-analysis-dynamic-synonym
  • ES-Head下载地址(谷歌商店也可以搜索到这个插件):https://github.com/mobz/elasticsearch-head

四、同义词语法

双十一,双11=>购物节
中秋,月饼=>中秋节
iphone,苹果手机,iphone13Pro
小米,小米手机
小米,小米电脑

一行一个同义词,其中:
AA,BB=>CC,会将AA与BB都映射成CC,然后只对CC进行文档索引
AA,BB,会索引AA还会索引BB
如果一个词在多行中出现,那么会进行累计

五、参考文档

  • ES官方网站,同义词:
    https://www.elastic.co/guide/en/elasticsearch/reference/2.3/analysis-synonym-tokenfilter.html
    https://www.elastic.co/guide/cn/elasticsearch/guide/current/synonyms.html
  • 知乎大佬文章:https://zhuanlan.zhihu.com/p/381936025
  • 知乎大佬踩坑总结:https://zhuanlan.zhihu.com/p/268169068

六、具体实现

1、创建索引时指定同义词
2、创建同义词文本维护同义词
3、采用analysis-dynamic-synonym插件,动态文件的方式同步同义词
4、采用analysis-dynamic-synonym插件,动态接口的方式同步同义词
5、改造analysis-dynamic-synonym源码访问远程数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Happy王子乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值