【问题标题】:Click-through relevancy ranking点击相关性排名
【发布时间】:2012-12-31 16:45:01
【问题描述】:

我想在搜索 (solr) 中实现点击相关性排名。基本上根据用户的反馈(即点击),我们想要改变搜索结果的顺序。以下是我的方法。

我们将在文档中添加一个新字段,以索引已访问(或单击)结果/文档的查询。每当单击结果时,我们将更新索引以包含已单击结果的查询。我们将使用 solr 的部分更新将新查询添加到索引中。因为我们也使用索引作为我们的数据存储,所以我们所有的字段都被存储了,我可以再存储一个字段。

这是实现此功能的正确方法吗?

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    注意:我,还必须评估日志记录,而且它(还)远离实现它。我刚开始构建一个需求规范,我制定了它。
    如下。

    Evaluate user selection (Click through) for `query` and matched result position.
    

    位置很重要,因为它决定了相关性。

    我选择排名靠前的结果是 3。(假设 N=3)。

    1. 如果用户选择带有N>3 的内容,则为查询增加此结果提升非常重要。
    2. 如果职位在N<=3,我们很好。
    3. 如果位置始终位于N<=3,则将排名靠前的结果降级(也许?)

    但是,我们可能会在这里得到很多错误信息。假设有一个用户发疯了,点击了完全不相关的结果。

    所以我们需要监控使用情况,甚至记录用户事件,除了基本位置并点击覆盖。

    所以,日志需要打开:

    • {user-login|session} 每页的点击结果。
    • 单击{Query + Filters + Facets} 的结果。 {did you mean... | autocomplete} 点击事件的特殊标志,{TimeStamp + Location}

    如果有大量独立用户表示在某个时间范围(几个月)内点击了低分文档,我会根据位置提升文档。

    由于我们甚至关联了一个用户会话(登录),我也许可以根据用户映射结果(如果用户产生不相关的噪音,将其发回给他;P)。

    但是,我会尽量不要过度推动。搜索可能看起来被篡改了。

    还有一个供用户填写的反馈表可能是一个好主意,以了解您的进展情况。

    【讨论】:

    • 感谢您的详细回答。我想知道,您如何使用从日志中提取的信息?您是否按照我建议的方式将该信息放回索引中?或者从索引中获取结果,然后做一些我认为效率不高的后处理。
    • 正如我所说,实现仍然存在,但有两个选项之一:1. 使用包含查询令牌的另一个字段(并且每次日志转储仅更新该字段),2. 更新字段提升(每 24 次-48小时)。我从不关心索引效率,因为我的索引是
    猜你喜欢
    • 2010-09-15
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 2017-07-21
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多