我正面临基于用户点击日志排序Lucene结果的问题。我希望首先获得更多访问结果。有谁知道如何在Lucene或Solr中配置或实现这样的属性?
非常感谢。
答案 0 :(得分:2)
您可以在架构中声明一个可排序的整数字段(我们称之为clickNum),默认情况下为每个索引文档将其设置为零。 当用户打开文档时,您的应用会通过设置clickNum = clickNum + 1来触发clickNum字段的更新。
在查询端,您可以根据主要排序参数(如果有)和clickNum设置多重排序:
sort=<field name>+<direction>[,clickNum+desc]
您可以通过将您的点击日志存储在外部数据库中并使用查询后详细说明重新排序结果来避免文档更新,但恕我直言,这不是一个好的选择。
答案 1 :(得分:0)
使用Dismax可能是一个不错的选择。可以将Dismax的bf(Boost Functions)参数设置为以高点击次数提升文档。
如果您不想使用Dismax,您还可以在bf(Boost Functions)参数中使用function query。