java - 按文档 ID 降序搜索 Lucene

标签 java lucene

希望有人能帮助我。

我有一个包含数万个文档的索引。每个文档由多个带有文本的字段和一个带有 ID(整数)的字段组成。搜索会提供 ID 列表。

为了节省资源,搜索结果的最大数量限制为 10000。通常这效果很好。现在发生了一个案例,查到的结果有10000多条。假设是 15000。Lucene 默认按照 DocID 升序搜索,因此 Lucene 会提供前 10000 个 ID。

如果 Lucene 提供最后 10000 个 ID,我会发现效果更好,这样就可以找到较新的文档。有没有办法改变 Lucene 搜索的降序?

最佳答案

只需创建一个按文档 ID 以相反顺序排序的排序即可。

Sort sort = new Sort(
   new SortField(
      null,                    // or specify a field
      SortField.Type.DOC, 
      true
   )
);

然后搜索 top、err、bottom 10K 文档:

indexSearcher.search(query, 10000);

关于java - 按文档 ID 降序搜索 Lucene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25364268/

相关文章:

java - 从 php 脚本解析 Json

performance - 过度使用lucene好吗?

lucene - ElasticSearch 映射和相关对象

search - Lucene 或 Mysql 全文搜索

java - 在Java中如何使用构造函数来初始化不同类的对象?

java - 如何让用户选择输入Java

java - 如何检查Android EditText整数值?

elasticsearch - 全文搜索引擎和安全性

java - 如何访问Lucene索引中记录的关键字?

java - 按字符串顺序配置的排序逻辑