为什么 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.
Sphinx 默认排序器的公式,SPH_RANK_PROXIMITY_BM25
如下所示:
SPH_RANK_PROXIMITY_BM25 = sum(lcs*user_weight)*1000+bm25
分别为每个字段计算最长公共子序列,然后乘以user_weight
。但是 bm25
只是一个文档范围的变量,不考虑用户字段。为什么会这样?
只是因为它速度更快,而且在很多情况下质量就足够了。那里有一个自定义排名器和 bm25f。文档长度默认也不计算,索引时需要index_field_lengths=1.