为什么 Sphinx 没有带字段权重的 BM25?

Why doesn't Sphinx have BM25 with field weights?

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

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

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

只是因为它速度更快,而且在很多情况下质量就足够了。那里有一个自定义排名器和 bm25f。文档长度默认也不计算,索引时需要index_field_lengths=1.