我想使用Lucene索引(版本4.3.1)找到查询的总命中数。
的搜索方法之一public TopDocs search(Query query,
int n) - Finds the top n hits for query.
在TopDocs中,我可以看到 totalHits 字段 https://lucene.apache.org/core/5_3_0/core/org/apache/lucene/search/TopDocs.html#totalHits
但我无法理解 'n' search()参数对 TopDocs.totalHits <的影响/强>
例如:如果我设置n = 1000,那么它是TopDocs.totalHits将是&lt; = n?
在我的一次跑步中,我传球n = 1但是在那次搜索中,TopDocs.totalHits是29。
请有人请点亮。
答案 0 :(得分:1)
如果我设置n = 1000,那么它是TopDocs.totalHits将是&lt; = n?
是。使用“n”,您可以定义您感兴趣的结果数量.TopDocs.totalHits反映了有效的命中数。
通常搜索所有文档并不是很有用,因为它可能会导致性能问题。除此之外,用户可能对所有结果不感兴趣 - &gt;有分页或过滤的地方。
如果您想搜索所有结果,您需要使用收集器和此搜索方法:
public void search(Query query, Collector results)
根据您的收藏家,您可以获得所有搜索结果或点击次数或点击次数。