首页 > 解决方案 > BM25 是否使用查询协调器?

问题描述

在 Lucene 的实际评分功能中,有一个查询协调器,它惩罚不匹配所有查询词的文档。Okapi BM25 使用相同的技巧吗?

我对此感到好奇的原因是我正在使用带有 BM25 相似性模块的 Elasticsearch,有时我觉得这个算法不喜欢匹配更多的文档。在某些情况下,一个文档包含一个或两个术语很多,胜过包含所有查询术语的文档。

标签: elasticsearchsolrluceneinformation-retrievaltf-idf

解决方案


是和不是。

不,它不使用旧 Lucene 默认相似度所描述的坐标因子(注意:Lucene 核心现在默认也使用 BM25)。

是的,它确实比对同一术语的一堆命中更重视对更多查询术语的命中。它以更好的术语饱和度来做到这一点,使旧的坐标因子有效地过时了。

然而,使用任一算法,在较少条件下的许多命中总是有可能超过在较多条件下的少数命中。


推荐阅读