C# 如何高效地找出Lucene查询是否至少有一个结果?

C# 如何高效地找出Lucene查询是否至少有一个结果?,c#,.net,lucene,lucene.net,C#,.net,Lucene,Lucene.net,我需要找出我的布尔查询是否至少有一个匹配的文档。我不关心匹配文档的总数,只关心至少有一个匹配。目前我正在使用IndexSearcher.Search。。。n=1,但我想知道是否有更有效的方法 如果我设置n=1,TotalHits仍将设置为正确的值,即它可能高于1,因此我怀疑Lucene做了我不需要的额外工作 有更好的方法吗 另外,我正在使用Lucene.NET 3.0.3。Lucene不会通过搜索每个文档来确定点击次数。它在索引中进行搜索,索引引用回匹配的文档。想想一本书的索引: 猫。5, 8,

我需要找出我的布尔查询是否至少有一个匹配的文档。我不关心匹配文档的总数,只关心至少有一个匹配。目前我正在使用IndexSearcher.Search。。。n=1,但我想知道是否有更有效的方法

如果我设置n=1,TotalHits仍将设置为正确的值,即它可能高于1,因此我怀疑Lucene做了我不需要的额外工作

有更好的方法吗


另外,我正在使用Lucene.NET 3.0.3。

Lucene不会通过搜索每个文档来确定点击次数。它在索引中进行搜索,索引引用回匹配的文档。想想一本书的索引:

猫。5, 8, 9, 10 狗。5, 6, 11, 12 马。5, 8, 12, 13, 14 如果我在搜索猫和马,那么告诉我1次或更多点击与2次点击所需的工作量实际上没有显著差异


至于在充满should子句的布尔查询中短路,我不知道有哪个查询类会这样做。如果您有一个类似字段:simpleterm field:*slowwildcardquery*的查询,并且如果简单术语查询中存在匹配项,则不想计算大-慢通配符查询,您应该将它们作为单独的搜索运行。如果第一个没有返回任何命中,则运行第二个。

感谢您的澄清!那么,我将坚持我最初的质疑: