Lucene中搜索结果质量的确定

Lucene中搜索结果质量的确定,lucene,information-retrieval,Lucene,Information Retrieval,我已经在Lucene中使用邮件列表、wiki、博客帖子等搜索了几天关于分数标准化的内容(现在我知道这是不可能的)。我将暴露我的问题,因为我不确定分数标准化是否是我们项目所需要的 背景: 在我们的项目中,我们在Lucene之上使用Solr,并使用定制的RequestHandler和SearchComponents。对于给定的查询,我们需要检测查询何时得到较差的结果以触发不同的操作 假设: Inmutable索引(一旦索引,它就不会更新)和相同的查询技巧(使用相同字段boosting的dismax

我已经在Lucene中使用邮件列表、wiki、博客帖子等搜索了几天关于分数标准化的内容(现在我知道这是不可能的)。我将暴露我的问题,因为我不确定分数标准化是否是我们项目所需要的

背景: 在我们的项目中,我们在Lucene之上使用Solr,并使用定制的RequestHandler和SearchComponents。对于给定的查询,我们需要检测查询何时得到较差的结果以触发不同的操作

假设: Inmutable索引(一旦索引,它就不会更新)和相同的查询技巧(使用相同字段boosting的dismax qparser,没有boost函数,也没有boost查询)

问题: 我们知道分数标准化是不可实现的。但有没有办法(使用TF/IDF和boost字段假设)确定搜索结果匹配质量差的时间

我们有一个包含科学论文的索引,另一个包含医疗中心的信息。当用户对第一个索引进行查询并得到很差的结果(从分数推断?)时,我们希望查询第二个索引并使用一些阈值(分数阈值?)合并结果


提前感谢

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

然而,我认为,在您描述的这种非常特殊的情况下,比较分数是可行的,只要您能够覆盖默认的相似性,使用联合计算的两个索引的IDF。例如,您可以通过将所有文档保存在一个索引中并添加一个额外的(并隐藏到用户的)“type”字段来轻松实现。然后,您可以比较这些查询返回的绝对值

一般来说,可以通过查看一些特征来确定低质量的结果,例如非常少的结果,或者一些分数的奇数分布,但我认为这实际上并不能解决您的问题。它看起来更类似于合并孤立搜索结果的问题,例如在中讨论了该问题