solr - 在 Lucene/Solr 中按最近访问排序

标签 solr lucene

在我的 Solr 查询中,我想将最近访问的文档排序到顶部(“访问”表示由用户操作打开)。没有其他搜索条件对我有影响:在文本与查询匹配的文档中,我希望它们按最近使用的顺序排列。我只能想到两种方法来做到这一点:

1) 在每个文档中包含一个“上次访问”日期字段,以便 Solr 对其进行排序。我听说可以非常快速地对 Trie Date 字段进行排序。问题当然是保持该字段是最新的,这需要存储每个文档的文本,以便我可以删除和重新添加具有更新的“上次访问”字段的任何文档。可变字段可以避免这种情况,但 Lucene/Solr 仍然不提供可变字段。

2)或者,存储可变的“上次访问”日期并在另一个数据库中保持更新。这将要求 Solr 返回匹配文档的完整列表,其中可能包含数十万个文档。然后将这个庞大的文档 ID 列表与数据库中的日期进行匹配,然后进行排序。它适用于不常见的搜索词,但不适用于广泛的常见搜索词。

所以权衡是在 1) 索引大小加上每次访问文档时的处理成本和 2) 大查询开销之间,特别是对于非重点搜索词

我有其他选择吗?

最佳答案

关于solr - 在 Lucene/Solr 中按最近访问排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253772/

相关文章:

尝试提交文件时出现 Solr fatal error

java - 如何从 Lucene 的特定字段中获取唯一术语列表?

java - Solr : Always seeking for a core named "collection1"

search - 有什么方法可以跟踪 Solr 搜索结果返回了多少次?

solr - 将 solr 1.4 索引升级到 solr 3.3?

solr - 如何在 Apache Solr 的文本字段中仅索引文档内容而不索引文档属性

java - 使用 JBoss Cache 作为 Apache Lucene 的目录

solr - 关于使用Lucene进行搜索?

solr - SOLR 中的多值属性分组

lucene - Sitecore syncMaster 索引策略不起作用