【发布时间】:2011-09-23 07:25:14
【问题描述】:
我正在尝试在 Lucene 中实现与 tf-idf 无关的自定义评分公式(例如,仅更改相似性是行不通的)。
为了做到这一点,我需要能够使用我的自定义查询并为存储在索引中的每个文档生成一个分数——不仅仅是那些与查询中的术语匹配的文档(因为我的评分涉及检查什么是本质上是同义词,因此即使文档没有确切的术语,它仍然可以产生积极的分数)。最好的方法是简单地创建一个 IndexReader 并为所有文档调用Document d = reader.doc(i)(如here 所述),然后当场生成分数?
我一直在查看 Lucene 的评分内部结构,特别是各种 Scorer 和 Collector 类,似乎发生的事情(对于 Lucene 3.2)是 Weight 提供了一个 Scorer,它与 Collector 一起循环遍历所有匹配的文档查询。我可以以某种方式利用这种结构,但再次获得一个自定义记分器实现来考虑所有文档吗?
【问题讨论】:
-
我很好奇你想要实现什么样的评分。