按最近的Lucene/Solr访问排序

Jeg*_*sch 6 lucene solr

在我的Solr查询中,我想将最近访问的文档排序到顶部("访问"意味着由用户操作打开).没有其他搜索条件对我有影响:文本与查询匹配的文档中,我希望它们按照最近的使用顺序排列.我只能想到两种方法:

1)在每个文档中包含一个"上次访问"的日期字段以对Solr进行排序.据我所知,Trie Date字段可以很快排序.问题当然是保持该字段是最新的,这将需要存储每个文档的文本,以便我可以删除并重新添加具有更新的"最后访问"字段的任何文档.可变字段可以避免这种情况,但Lucene/Solr仍然不提供可变字段.

2)或者,存储可变的"最后访问"日期并将其更新到另一个数据库中.这将要求Solr返回匹配文档的完整列表,这些文档可能超过数十万个文档.然后,这个庞大的文档ID列表将与db中的日期进行匹配,然后进行排序.它适用于不常见的搜索术语,但不适用于广泛的常见搜索术语.

因此,每次访问文档时,权衡是1)索引大小加上处理成本和2)大查询开销,特别是对于未聚焦的搜索术语

我还有其他选择吗?