我可以在搜索时得到每个文档的 whoosh 计算的分数吗?

Can I get the scores calculated by whoosh for each document while searching?

我正在尝试实施 Okapi BM25 以使用 python whoosh 库通过查询来搜索文档。

我的理解是whoosh根据query使用BM25对每篇文档进行评分,然后进行排序,给出最好的结果。

我用

results = searcher.search(query)

获取与查询最匹配的文档。

如何获得每个文档的分数? BM25排名还有其他方式获取分数吗?

您可以使用 score 属性获取计算分数:

for r in results:
    print r, r.score

您可以获得不同的评分记录或检索。

例如 Tf-IDF、频率、BM25。

如果你想要得分,那么这里是方法。

results = searcher.search(query)

for hit in results:
  print("the Score", hit.score)
  print("the rank", hit.rank)
  print("the document number", hit.docnum)