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

Adrien Grand updated LUCENE-6601:
---------------------------------
    Attachment: LUCENE-6601.patch

Here is a patch against 5.x:
 - FilteredQuery always rewrites to a BooleanQuery
 - FilterStrategy was changed to have a single method that rewrites the filter 
to a wrapper that can decide to either use the iterator API or the 
random-access API to implement the scorer
 - QUERY_FIRST_FILTER_STRATEGY and LEAP_FROG_QUERY_FIRST_STRATEGY are now the 
same thing and use the iterator API, which one is iterated first depends on the 
cost API
 - QUERY_FIRST_FILTER_STRATEGY applies the filter as an approximation
 - RANDOM_ACCESS_FILTER_STRATEGY applies cheap filters using the iterator API. 
However a change is that costly filters are now applied as an approximation 
instead of acceptDocs. If the query is a simple term query, this doesn't make 
any difference, but in case of more sophisticated queries, Lucene will now 
execute the "cheap" components of the query before the filter.

This way FilteredQuery does not use acceptDocs anymore, which means we could 
backport LUCENE-6553 to 5.x.

> Change FilteredQuery.FilterStrategy to use the two-phase iteration API
> ----------------------------------------------------------------------
>
>                 Key: LUCENE-6601
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6601
>             Project: Lucene - Core
>          Issue Type: Task
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>            Priority: Minor
>             Fix For: 5.3
>
>         Attachments: LUCENE-6601.patch
>
>
> We could change FilterStrategy so that instead of being a factory of scorers, 
> it would just rewrite filters in such a way that they can decide which of the 
> iterator or random-access API should be used.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to