报名热线:

0898-08980898

个/性/化/教/育/行/业/领/跑/者

凤凰注册

CURRICULUM

凤凰招商

0898-08980898

广东省清远市

123456789

凤凰登录 >更多
凤凰平台

当前位置: 首页 > 凤凰平台

es搜索同义词近义词技术方案

2024/03/12

使用同义词文件,在es索引中定义"synonyms_path",在服务器中放入同义词文件synonyms.txt文件,并设置updateable为true动态读取更新的同义词文件,但这个需要运维一起配合,当有业务有新增同义词时候,也需要运维帮我们添加进这个文件中,维护比较不方便

 

查看腾讯云关于同义词配置的文档,关于同义词的添加,也同样需要对现有索引进行reindex操作
在这里插入图片描述

主要讲一下方案二,直接在我们建的索引上进行维护同义词

es建索引时,我们可以给es创建一个同义词语汇单元过滤器,然后使用下面这样的同义词规则:

“衬衫, 衬衫料, 衬衣料, 衬衣”

例子:

1、创建普通索引

先创建一个普通的索引,并增加2条数据,对“海马毛”进行分词,可以得到“海马”,“毛”

在这里插入图片描述

 

进行match检索,发现也只能召回出一条数据

在这里插入图片描述

但是,业务上如果要认为在搜索上,输入海马毛的检索效果跟马海毛的一样,那么就需要给es配置同义词

2、创建含有同义词过滤器的es索引

 

关于自定义分析器,可参考官方文档https://www.elastic.co/guide/cn/elasticsearch/guide/current/custom-analyzers.html
在这里插入图片描述

自定义分析器后,我们增加再对“海马毛”进行分词
在这里插入图片描述

发现同义词已经生效了,这个时候,我们在检索“海马毛”时候,也可以召回到“马海毛”的数据
在这里插入图片描述
后期维护:

后续业务如果还需要一直添加同义词,对es来说,是需要reindex进行操作

reindix操作的操作在我另一篇博客有详细描述:传送门

如果只是单纯修改settings,那么只会对改索引新增的文档数据有效,对旧数据无效

关于凤凰娱乐 /ABOUT US
凤凰娱乐最安全、信誉、快捷的娱乐【skype:zhumeng1688】,是亚洲极具公信力的娱乐游戏公司,以互联网技术为基础,引进海外高科技人才,凤凰公司自主研发了基于playcraft引擎的H5网页版游戏,致力于带给凤凰平台玩家最新颖、最高效的服务与娱乐体验。...

友情链接:

微信平台

手机官网

网站首页| 关于凤凰娱乐| 凤凰注册| 凤凰登录| 凤凰平台| 凤凰APP| 凤凰代理加盟| 凤凰招商| 在线报名|

平台注册入口