确定Lucene的搜索结果质量

时间:2011-11-14 11:49:37

标签: lucene information-retrieval

我一直在使用邮件列表,维基,博客等等在Lucene中搜索得分正常化几天(现在我知道这不可能完成)。我将揭露我的问题,因为我不确定分数标准化是否是我们项目所需要的。

背景:   在我们的项目中,我们使用Solr在Lucene之上使用自定义RequestHandlers和SearchComponents。对于给定的查询,我们需要检测查询何时获得不良结果以触发不同的操作。

假设:   不可变索引(一旦索引,未更新)和相同的查询提示(dismax qparser具有相同的字段提升,没有boost函数或boost查询)。

问题:   我们知道得分归一化是不可实现的。但是,当搜索结果匹配质量差时,有没有办法确定(使用TF / IDF和提升字段假设)?

示例:我们有一份科学论文索引,另一份载有医疗中心的信息。当用户查询第一个索引并得到不良结果(从得分中推断出来?)时,我们想查询第二个索引并使用某个阈值合并结果(得分阈值?)

提前致谢

1 个答案:

答案 0 :(得分:1)

你是对的,不同查询的分数标准化没有意义,因为几乎所有的相似性度量都基于术语频率,这当然是查询本地的。

但是,我认为比较你正在描述的这个特殊情况下的分数是否可行,如果只是你会覆盖默认的相似性来使用两个索引共同计算的IDF。例如,您可以通过将所有文档保存在一个索引中并添加额外(并隐藏给用户)“类型”字段来轻松实现。然后,您可以比较这些查询返回的绝对值。

通常,可以通过查看某些功能来确定低质量结果,例如非常少量的结果,或者某些奇怪的分数分布,但我认为它实际上并不能解决您的问题。它看起来更像是合并孤立搜索结果的问题,例如在this paper中讨论过。