[ 
https://issues.apache.org/jira/browse/LUCENE-4410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Willnauer updated LUCENE-4410:
------------------------------------

    Attachment: LUCENE-4410.patch

This patch introduces a FilterStrategy similar to MTQ#RewriteMethod that wraps 
a given scorer & DocIDSet into a "Filtered Scorer". By default FilteredQuery 
uses the RandomAccessFilterStrategy that falls back to leap frog just like FQ 
did before. In contrast to the current FQ #useRandomAccess is now an impl 
detail of the RAFilterStrategy and might be removed with a different 
implementation that might rely on Scorer#cost() or something like that.

I also added a DocFirstFilterStrategy that applies filters only iff the 
delegate scorer matched. This seems more consistent with what other queries do 
(ie. MTQ) and provides more flexibility to the user
                
> Make FilteredQuery more flexible with regards to how filters are applied
> ------------------------------------------------------------------------
>
>                 Key: LUCENE-4410
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4410
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: core/search
>    Affects Versions: 4.0-BETA
>            Reporter: Simon Willnauer
>            Priority: Blocker
>             Fix For: 5.0, 4.0
>
>         Attachments: LUCENE-4410.patch
>
>
> Currently FilteredQuery uses either the "old" lucene 3 leap frog approach or 
> pushes the filter down together with accepted docs. Yet there might be more 
> strategies required to fit common usecases like geo-filtering where a rather 
> costly function is applied to each document. Using leap frog this might 
> result in a very slow query if the filter is advanced since it might have 
> linear running time to find the next valid document. We should be more 
> flexible with regards to those usecases and make it possible to either tell 
> FQ what to do or plug in a strategy that applied a filter in a different way.
> The current FQ impl also uses an heuristic to decide if RA or LeapFrog should 
> be used. This is really an implementation detail of the strategy and not of 
> FQ and should be moved out.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to