elasticsearch的打分策略
elasticsearch的打分策略
arthur666 发表于5个月前
elasticsearch的打分策略
  • 发表于 5个月前
  • 阅读 57
  • 收藏 1
  • 点赞 0
  • 评论 1
摘要: elasticsearch 简称es(下同),打分策略

es的搜索结果,每一个结果上面都会有一个“_score”字段,就是搜出来这个结果所占的分值。

这个就涉及到搜索结果的排序问题。当然我们想要相关度越大结果越靠前。

es评分策略设计到两点

   1:内容相关度

    比如淘宝搜索 “小米电视机“,淘宝的搜索会先把条件分词 分为 “小米”“电视”“电视机”(也看可能更细粒度),然后去自己的仓库查找符合条件的产品,当然我们看到的最靠前的就是小米电视机 32寸,曲面 4k 一些相关的电视机,但是你跳转到第五页或者更靠后,你会发现产品 并不是小米电视机,有一些 小米配件,小米遥控板,或者海信电视机,索尼电视剧一类的产品。 这种现象就是说搜索会根据入参的分词去搜索数据库的数据,当字段的值匹配度越高,这个结果的评分就越高,就越靠前。(声明:笔者并不知道淘宝的搜索引擎是什么,只是用这种现象解释一下)

2:映射结构字段的权重值

    

我自己type的一个字段叫做zuName 类型:文本类型,分词器是用的ik的分词器,权重值为5

现在假如有两个字段 :zuName 权重为5 ;zuDetail 权重为3

这样如果多字段搜索的话,两个字段的匹配度一致的话,但是zuName返回的评分更高一点,因为开始设置的权重更高。我现在的用途就是,多type查询的时候,相同字段会设置不同的权重,这样两个type的数据可以区分出来了。

es也支持自定义打分策略,笔者有成熟的自定义打分策略方案会持续更新出来。

我是使用java操作es的,大家可以在扣扣群互相交流

周末愉快,明天不来加班算我输!

 

 

 

共有 人打赏支持
粉丝 7
博文 15
码字总数 4855
评论 (1)
arthur666
持续更新关于es5.4 版本的特性,下次会更新关于es聚合的东西
×
arthur666
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: