TermQuery和SpanTermQuery之间似乎没有任何功能差异。搜索性能还有其他差异吗?即使差异很小,我也想知道。
如果有所不同,我正在使用Lucene.Net 2.9.4g。
答案 0 :(得分:3)
我发现当搜索服务器处于负载状态时,两种查询类型之间存在明显的性能差异。 TermQuery更快。
我使用50个并发用户对数百万个文档的数据库进行了负载测试,获得了以下平均搜索时间。
(还有其他因素使我的平均值高于正常水平,例如大型文档,复杂查询和不太理想的服务器。但是使用TermQuery与SpanTermQuery的影响很明显。)
答案 1 :(得分:0)
如果您不需要Spans搜索API中的功能,则没有功能差异。例如,如果您要使用SpanTermQuery
/ SpanNearQuery
/ SpanOrQuery
等,但是如果您不使用Spans API,则需要使用SpanNotQuery
for子句你不需要它。
使用Payloads时,Spans也非常方便。
两个班级的表现都应该相同。
答案 2 :(得分:0)
即使不需要位置信息,SpanTermQuery也需要额外的IO。因此,如果TermQuery可以工作,请不要使用SpanTermQuery。