怎么调整字段长短_和美大家说 | Elasticsearch之相关性调整实践

5b1aed645c9249f014e4f03a50e7e9f0.png

和美大“家”

f398323383784f4fbb6bb43b25b540c2.png

作者 | Wuxiang

编辑 | 品牌部

前 言

信息检索的核心问题就是在文档集中为用户检索最相关的子文档集,依靠排序算法对检索结果按照相关性进行排序,排序后的结果作为对用户所提出查询的回应。本文主要介绍搜素引擎Elasticsearch中全文检索相关性调整实战。

相关性算法

Elasticsearch在ES5版本之前默认使用经典的TF/IDF相关性算法,ES5之后默认使用基于概率模型的BM25(Best Match 25)相关性算法。和TF/IDF相比在BM25中词频对相关性评分的影响降低了,当TF无限增加时,BM25算法会趋于一个数值,如下图,ES提供了一种非常好的方式,实现了可插拔式的配置,允许我们控制每个字段的相关性算法。在 Mappings 设置阶段,我们可以调整 similarity 的参数并给不同的字段设置不同的 similarity 来达到调整相关性算法的目的。ES 提供了几种可用的 similarity,本文主要讨论BM25。

c00994d732aeb6d48fbb0cee0f6a2f7f.png

此处放上BM25算法公式,便于接下来对调整相关性实战结果的理解

6b2ecb332d711bb91461d92c0b978a4b.png
  • score(D,Q):这个公式最终的结果,Q表示query,D表示doc,表示一个query对一个doc的最终的总得分;

  • IDF(qi):idf算法对一个term的值;

  •  f(xxx)/xxx:这一大串公式,即tf norm的计算公式;

  •  ∑ 求和符号:idf和tf norm结果相乘,最后求和;

  • 其中k1 默认值是1.2, 数值越小,饱和度越高,b默认值是0.75(取之范围 0~1),0代表禁用Normalization。

调整相关性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值