1

我正面临根据用户点击日志对 Lucene 结果进行排序的问题。我希望更多的访问结果是第一位的。有谁知道如何在 Lucene 或 Solr 中配置或实现此类属性?

非常感谢。

4

2 回答 2

2

您可以在架构中声明一个可排序的整数字段(我们称之为 clickNum),默认情况下将每个索引文档设置为零。当用户打开文档时,您的应用会通过设置 clickNum = clickNum + 1 来触发 clickNum 字段的更新。

在查询端,您可以根据您的主要排序参数(如果有)和 clickNum 设置多重排序: sort=<field name>+<direction>[,clickNum+desc]

您可以通过将点击日志存储在外部数据库中并使用查询后详细说明重新排序结果来避免文档更新,但恕我直言,这不是一个好的选择。

于 2010-05-31T14:40:19.977 回答
0

使用Dismax可能是一个不错的选择。Dismax 的 bf (Boost Functions) 参数可以设置为提升点击次数较多的文档。

如果不想使用 Dismax,也可以在 bf(Boost Functions)参数中使用函数查询。

于 2010-06-01T12:23:15.743 回答