相关性和解决方案分组



假设Solr索引中有以下网页集合:

+-----+----------+----------------+--------------+
|  ID |  Domain  |     Path       |    Content   |
+-----+----------+----------------+--------------+
|  1  |  1.com   |  /hello1.html  |  Hello dude  |
|  2  |  1.com   |  /hello2.html  |  Hello man   |
|  3  |  1.com   |  /hello3.html  |  Hello fella |
|  4  |  2.com   |  /hello1.html  |  Hello sir   |
...

我想要一个hello的查询来显示按域分组的结果,比如:

Results from 1.com:
/hello1.html
/hello2.html
/hello3.html
Results from 2.com:
/hello1.html

如果我按分数排序,排序是如何确定的?我通常使用TF/IDF和PageRank的组合来计算结果,但由于这会计算每个项目的分数,它如何决定如何排序垃圾?如果1.com/hello3.html和1.com/hello2.html的相关性很低,但有两个结果,而2.com/hello1.html的相关性很高,但只有一个结果,该怎么办?反之亦然?或者,当一个分组字段中有多个项目时,相关性是否相加?

我环顾四周,但一直没能找到一个好的答案。

谢谢。

在我看来,您正在使用Result Grouping。如果是这种情况,则根据sort参数对组进行排序,并且根据group.sort参数对每个组中的记录进行排序。如果按sort=score desc对组进行排序(这是默认值,因此实际上不需要指定它),则它会根据每组的分数对组进行分类。这个分数是如何确定的还不太清楚,但如果你浏览链接文档中的示例,你可以看到以下语句:

组按每组中最前面文档的分数排序。

因此,在您的示例中,如果2.com的hello1.html是您的结果集中最相关的文档,则"来自2.com的结果"将是您最相关的组,即使"来自1.com的结果数"包含文档数的三倍。

如果这不是您想要的,那么最好的选择是提供不同的sort参数或结果后处理。例如,对于我参与的一个项目(我们有非常少量的组),我们选择提取每组的前三个结果,在后处理中,我们根据组的得分和numFound值的组合计算出组的排序顺序。对于群体过多的案件来说,这种策略可能是令人望而却步的,如果数量更多的群体冒着让最相关的文件更难找到的风险,这可能不是一个好主意。

相关内容

  • 没有找到相关文章

最新更新