lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From alex stark <>
Subject RE: Legacy filter strategy in Lucene 6.0
Date Fri, 10 Aug 2018 03:13:14 GMT
Thanks Uwe, I think you are recommending IndexOrDocValuesQuery/DocValuesRangeQuery, and the
articles by Adrien,
It looks promising for my requirement, I will try on that. ---- On Thu, 09 Aug 2018 16:04:27
+0800 Uwe Schindler <> wrote ---- Hi, IMHO: I'd split the whole code
into a BooleanQuery with two filter clauses. The reverse index based condition (term condition,
e.g., TermInSetQuery) gets added as a Occur.FILTER and the DocValues condition is a separate
Occur.FILTER. If Lucene executes such a query, it would use the more specific condition (based
on cost) to lead the execution, which should be the terms condition. The docvalues condition
is then only checked for matches of the first. But you can still go and implement the two-phase
iterator, but I'd not do that. Uwe ----- Uwe Schindler Achterdiek 19, D-28357 Bremen
eMail: > -----Original Message----- > From: alex stark <>
> Sent: Thursday, August 9, 2018 9:12 AM > To: java-user <>
> Cc: > Subject: Re: Legacy filter strategy in Lucene 6.0
> > Thanks Adrien, I want to filter out docs base on conditions which stored in >
doc values (those conditions are unselective ranges which is not appropriate > to put into
reverse index), so I plan to use some selective term conditions to > do first round search
and then filter in second phase. I see there is two > phase iterator, but I did not find
how to use it. Is it a appropriate scenario to > use two phase iterator? or It is better
to do it in a collector? Is there any > guide of two phase iterator? Best Regards ----
On Wed, 08 Aug 2018 > 16:08:39 +0800 Adrien Grand <> wrote ----
Hi Alex, These > strategies still exist internally, but BooleanQuery decides which one
to use > automatically based on the cost API (cheaper clauses run first) and whether >
sub clauses produce bitset-based or postings-based iterators. Le mer. 8 août > 2018 à
09:46, alex stark <> a écrit : > As FilteredQuery > are removed
in Lucene 6.0, we should use boolean query to > do the > filtering. How about the legacy
> What is the > current filter strategy? Thanks, ---------------------------------------------------------------------
To unsubscribe, e-mail: For additional commands, e-mail:
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message