Hey Guys,

I have a question on Query.rewrite() in Lucene 5.5
I am noticing that Query.rewrite() is actually more expensive than the actual 
search on a particular index with multiple segments (8 in my case).
Most of the rewrite cost seems to come from FuzzyQuery’s that need to be 
rewritten.

Tracing the code a bit, it looks like collectTerms() in TermCollectingRewrite 
seems to be going through all segments sequentially.
https://github.com/apache/lucene-solr/blob/releases/lucene-solr/5.5.0/lucene/core/src/java/org/apache/lucene/search/TermCollectingRewrite.java#L51
 
<https://github.com/apache/lucene-solr/blob/releases/lucene-solr/5.5.0/lucene/core/src/java/org/apache/lucene/search/TermCollectingRewrite.java#L51>

A lot of these methods are final, so this behavior cannot be easily overriden.
Can rewrite() be not parallelized for each segment, or am I missing something 
more obvious?

Thanks for your help.
Amit

Reply via email to