2017-09-15 79 views
1

举例:假设我们有一个搜索查询返回2000个结果,其范围从非常相关到完全不相关。当按相关性排序时,这很好,因为最相关的结果列在第一页上。Solr:如何在不按相关性排序时管理不相关的结果?

但是,当通过其他字段进行排序(例如用户评分)时,第一页上的结果中将显示几乎没有相关的结果,这对我们的客户来说是个问题。不知何故,我们只需要显示最高评分的“相关”结果。所有这些

我只能想一些解决方案,有问题:

1 - 滤除Solr的侧商家信息是否关联得分是下一个门槛。我不知道如何做到这一点,从我读过的话来看,这不是一个好主意。例如如果一个结果只返回10个列表,我想将它们全部显示出来,而不是过滤出来。似乎不可能确定一个可以全面工作的阈值。如果任何人都可以告诉我,否则请告诉我如何!

2 - 根据分数过滤应用程序端的列表。这我可以没有问题,除了现在我不能实现分页,因为我没有办法确定没有返回整个集合,这会影响性能/带宽等过滤结果的总数量......也有同样的第一点的问题。

3 - 创建一种“合并”排序,聚合相关性和用户评分之间的分数,然后对结果进行排序。首先,我不确定这是否有可能,其次,如果结果没有按评级顺序实际列出,那么对用户而言就会很奇怪。

这是如何解决的?我愿意接受任何想法!

谢谢

回答

0

如果它们不相关,它们应该从结果集中排除。既然你想通过专门的领域(即用户评级)来订购,你必须调整你如何决定哪些文件包含在结果中。

在任何情况下,您都必须定义“什么是相关的”,因为分数在查询之间并没有真正的可比性,也没有说“这是xyz相关的!”。

您必须决定为什么这些包含的文档不相关,并根据该标准排除它们,然后使用评分作为一种方法来进一步提高它们(如果您希望搜索似乎有机/相关)。否则,您可以排除它们并按用户分数排序。但请记住,作为用户体验的用户分数通常是harder problem to make relevant than just order by the average of the votes

0

通常,客户可以选择不同的订购选项,例如通过相关性或评分。但你说得对,按等级排序可能没有用处。你可以做的是考虑到相关性评分的评分。例如,将“有机”分数乘以转换为小幅提升的分数。在Solr中,你可以用Function Queries来做到这一点。这不是艰难的科学,有一些魔力。很多是常识。它需要一些非常好的评估和测试,以查看最佳效果。

或者,如果您不想将其视为检索问题,则可以应用分面并让用户通过分级来筛选结果。让用户自助。但我可以想象,这并不适用于所有领域。

工程师可以定义相关性。内容相似性评分不仅是相关性的组成部分。许多信息检索研究人员和工程师同意除了内容相似性之外还应该使用上下文信息。这为定义检索模型打开了大量的可能性。例如,受欢迎的是Learning to Rank(LTR)方法,其中从搜索日志中学习不同的特征,以在用户配置文件和先前搜索行为的情况下向用户递送更多相关文档。 Solr将此作为module提供。