是否可以“合理地”设置Solr分数阈值,与返回的结果无关? (即Solr Scoring是否以任何方式标准化)

时间:2011-11-23 05:28:51

标签: search solr indexing solandra

我有一个包含许多条目的Solr索引,并且在查询时会返回一些子集 - 每个条目都有一些分数,(明显)。一旦结果以分数返回,我希望能够“保持”高于某个分数的结果(即仅具有特定质量的结果)。当返回的子集可能是什么时,是否可以这样做?

我问,因为在某些问题上似乎有一个得分为0.008的结果导致了一个不错的匹配,而其他查询得分较高会导致匹配不佳。

理想情况下,我只是在寻找一种方法来获取最高x条目,只要它们至少具有一定的质量。

提前致谢!

3 个答案:

答案 0 :(得分:4)

我认为你不应该这样做。使用TF-IDF评分模型,无法计算所有结果相关的分数,反之亦然。如果你设法做到这一点,那么在对索引进行一些更新之后,这个阈值很可能不再有效(因为文档频率会发生变化)。

如果你仍然想这样做,我认为使用函数查询是可以实现的:在Solr中有一个if(在trunk中)和一个query函数。只需过滤结果,以便只保留分数高于给定阈值的条目。

答案 1 :(得分:3)

答案 2 :(得分:2)

首先要通过ScoresAsPercentages

Solr不会对分数进行标准化,因为它可以在客户端轻松完成 您可以使用结果中提供的maxScore,将所有分数除以 maxScore。
第一张唱片的得分为1,其余为其余。