全国免费咨询热线

13988889999

工作时间:周一到周六 AM8:30

四方资讯

NEWS

四方资讯

你的位置: 首页 > 四方资讯

联系我们

CONTACT

手机:13988889999
电话:0898-88889999
QQ:88889999
邮箱:admin@eyoucms.com
地址:海南省海口市玉沙路58号

elasticsearch同义词和搜索相关度优化

时间:2024-06-24 13:58:47    点击量:

虽然docker方便.但是由于163镜像版本太低.所以在本地搭了一个es.版本6.3.0;

首先说下这次研究的方向: 搜索框搜西红柿,那么番茄是出不来的. 搜索米的时候.虾米条比大米的相关度还高
暂时考虑的方案如下:
1.加入同义词
2.相关度优化.将字段排优先级,名字的相关度提升
3.未雨绸缪,增加类似某宝某东一样的,销量高的排名也提升一点,具体如下


插件1 :同义词文件配置方式
插件2 :数据库配置方式
原本想使用插件2. 两种方式都是可以动态加载同义词词库.所以配置好之后不需要修改词库就重启es,
但是插件2的大佬一直没有更新,所以我在6.3.0中加入插件报错我没有处理好暂时先使用插件1

插件2
项目支持6.x版本.但是tag上没有,因此clone到本地.修改版本.然后maven打包.得到插件放到es的plugins下重启es
github上有使用的实例.我的测试用例,这个成功之后,暂时先放一边.先搞下相关度优化



将项目中需要优化的几个字段抽取出来自己定义了一个精简版的demo


原先的查询代码:


等同于:


修改后,排分还待修正.暂时按这样的分数:


等同于:


提升相关度使用function_score参考官方文档


加入同义词,这个需要修改mapping.


这时候在config的synonym.txt文件中增加同义词.比如比如插入数据:


ik分词器不会拆大米.所以大米和米是两个条件. 如果把米/大米设置成近义词.name这时候.搜米和大米都能收到上述商品.并且相关度也有有一定变化.

首先没有淘宝京东那么智能,但是由于我刚接触es.暂时先这样优化下,
测试数据.很假,主要测试下效果.

地址:海南省海口市玉沙路58号 电话:0898-88889999 手机:13988889999

Copyright © 2012-2018 首页-四方娱乐-注册登录站 ICP备案编:琼ICP备88889999号

友情链接: 大唐金牛九天凯旋

平台注册入口