lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: Legacy filter strategy in Lucene 6.0
Date Thu, 09 Aug 2018 08:04:27 GMT
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
http://www.thetaphi.de
eMail: uwe@thetaphi.de

> -----Original Message-----
> From: alex stark <alex.stark@zoho.com>
> Sent: Thursday, August 9, 2018 9:12 AM
> To: java-user <java-user@lucene.apache.org>
> Cc: java-user@lucene.apache.org
> 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 <jpountz@gmail.com> 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 <alex.stark@zoho.com> a écrit : > As FilteredQuery
> are removed in Lucene 6.0, we should use boolean query to > do the
> filtering. How about the legacy filter strategy such as >
> LEAP_FROG_FILTER_FIRST_STRATEGY or QUERY_FIRST_FILTER_STRATEGY?
> What is the > current filter strategy? Thanks,


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message