首页 > 解决方案 > 为什么 Sphinx 没有带字段权重的 BM25?

问题描述

Sphinx 默认排名器的公式SPH_RANK_PROXIMITY_BM25如下所示:

SPH_RANK_PROXIMITY_BM25 = sum(lcs*user_weight)*1000+bm25

分别为每个字段计算最长公共子序列,然后乘以user_weight。然而bm25,它只是一个文档范围的变量,不考虑用户字段。为什么呢?

标签: sphinx

解决方案


只是因为它更快,而且在许多情况下质量就足够了。有一个自定义排名器和 bm25f 可以在那里使用。默认情况下也不考虑文档长度,索引期间需要 index_field_lengths=1。


推荐阅读