点击率相关性排名

时间:2012-12-31 08:05:36

标签: solr lucene

我想在搜索(solr)中实现点击率相关性排名。基本上取决于用户的反馈(点击次数),我们希望更改搜索结果的顺序。以下是我的方法。

我们将向文档添加一个新字段,以索引已访问(或单击)结果/文档的查询。只要单击结果,我们就会更新索引以包含已单击结果的查询。我们将使用solr的部分更新将新查询添加到索引中。因为,我们也使用index作为我们的数据存储,所有字段都存储起来,我可以再存储一个字段。

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

1 个答案:

答案 0 :(得分:1)

注意:我还要评估日志记录,但它还没有实现它。我刚刚制定了一个需求规范。
它如下。

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

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

我选择最高结果为3.(假设N=3)。

  1. 如果用户选择的内容为N>3,则为查询增加此结果提升非常重要。
  2. 如果职位是N<=3,我们就很好。
  3. 如果位置在N<=3处是一致的,则降级最高结果(可能?)
  4. 但是,我们可能会收到很多错误的信息。假设,单个用户发疯并点击绝对不相关的结果。

    因此,除了基本位置之外,我们还需要监控使用情况,并记录用户事件,然后单击以覆盖此内容。

    因此,需要启用日志:

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

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

    由于我们甚至与用户会话(登录)共同关联,我可能会根据用户映射结果(如果用户生成无关的噪音,则将其发回给他; P)。

    但是,我会尽量不要过多提升。搜索可能看起来被篡改。

    此外,用户填写的反馈表可能是一个好主意,看看你的表现如何。