Yes it is used. I think there are simpler and possibly more efficient ways to implement a TermRangeQuery and that is why I am looking into this. But I am also curious to understand what IntersectTermsEnum is supposed to do.
Στις Δευ, 1 Απρ 2019 στις 5:34 μ.μ., ο/η Robert Muir <rcm...@gmail.com> έγραψε: > Is this IntersectTermsEnum really being used for term range query? Seems > like using a standard TermsEnum, seeking to the start of the range, then > calling next until the end would be easier. > > On Mon, Apr 1, 2019, 10:05 AM Stamatis Zampetakis <zabe...@gmail.com> > wrote: > > > Hi all, > > > > I am currently working on improving the performance of range queries on > > strings. I've noticed that using TermRangeQuery with low-selective > queries > > is a very bad idea in terms of performance but I cannot clearly explain > why > > since it seems related with how the IntersectTermsEnum#next method is > > implemented. > > > > The Javadoc of the class says that the terms index (the burst-trie > > datastructure) is not used by this implementation of TermsEnum. However, > > when I see the implementation of the next method I get the impression > that > > this is not accurate. Aren't we using the trie structure to skip parts of > > the data when the automaton states do not match? > > > > Can somebody provide a high-level intutition of what > > IntersectTermsEnum#next does? Initially, I thought that it is traversing > > the whole trie structure (skipping some branches when necessary) but I > may > > be wrong. > > > > Thanks in advance, > > Stamatis > > >