【问题标题】:How to get the unique count of documents in Lucene TopDocs?如何获取 Lucene TopDocs 中文档的唯一计数?
【发布时间】:2012-09-25 19:31:21
【问题描述】:

当我询问我的 TopDocs 对象的属性“totalHits”时,我得到了点击数。 但我想知道“找到了多少”文档,而不是“总点击量”。

例子:

- document 1: field A: foo bar - field B: testjes
- document 2: field A: bar foo - field B: foo bar

如果我搜索“foo”,当我询问“docs.totalHits”时,我会得到 3 个结果。 但是我想知道文档的数量,即2。

我可以循环列表并将“文档 ID”保存在一个集合中。然后问一下Set的大小,Lucene是否支持更好的方法来解决这个问题?

乔辰

【问题讨论】:

    标签: java lucene


    【解决方案1】:

    正如记录的here,您可以使用getTotalHits() 从您的TopDocCollector 检索它。

    编辑:例如

    TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
    searcher.search(query, collector);
    TopDocs topDocs = collector.topDocs();
    int numResults = collector.getTotalHits();
    

    【讨论】:

    • 嗯,我如何获得 TopDocCollector 对象?我正在这样搜索:TopDocs docs = searcher.search(query, blocksize);计数 = docs.totalHits;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2010-11-20
    • 2012-02-14
    • 2011-11-04
    • 2011-06-04
    相关资源
    最近更新 更多