【问题标题】:Solr: how to manage irrelevant results when not sorting by relevance?Solr:不按相关性排序时如何管理不相关的结果?
【发布时间】:2017-09-15 06:26:56
【问题描述】:

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

但是,当按其他字段(例如用户评分)排序时,第一页上的结果充满了几乎不相关的结果,这对我们的客户来说是个问题。不知何故,我们只需要显示具有最高评分的“相关”结果。

我只能想出几个解决办法,都是有问题的:

1 - 如果相关性分数低于阈值,则过滤掉 Solr 端的列表。我不知道该怎么做,而且从我读过的内容来看,这无论如何都不是一个好主意。例如如果结果仅返回 10 个列表,我希望将它们全部显示而不是过滤掉任何列表。似乎不可能确定一个可以全面发挥作用的阈值。如果有人可以告诉我,请告诉我如何!

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

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

以前是如何解决这个问题的?我愿意接受任何想法!

谢谢

【问题讨论】:

    标签: search solr


    【解决方案1】:

    如果它们不相关,则应从结果集中排除它们。由于您想按专用字段(即用户评分)进行排序,因此您必须调整如何决定将哪些文档包含在结果中。

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

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

    【讨论】:

      【解决方案2】:

      通常客户可以选择不同的订购选项,例如通过相关性或评级。但是你是对的,按评级排序可能不够有用。您可以做的是考虑相关性评分中的评分。例如,通过将“有机”分数与转换为小提升的评级相乘。在 Solr 中,您可以使用 Function Queries 执行此操作。这不是硬科学,其中涉及一些魔法。很多都是常识。并且它需要一些非常好的评估和测试才能看到最有效的方法。

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

      工程师可以定义什么是相关性。内容相似度评分不仅仅是构成相关性的因素。许多信息检索研究人员和工程师同意,除了内容相似性之外,还应该使用上下文信息。这开启了定义检索模型的大量可能性。例如,变得流行的是 Learning to Rank (LTR) 方法,其中从搜索日志中学习不同的特征,以根据用户的用户资料和先前的搜索行为向用户提供更多相关的文档。 Solr 将其提供为 module

      【讨论】:

        猜你喜欢
        • 2017-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        相关资源
        最近更新 更多