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

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

Same patch with some additional javadocs in ConjunctionDISI to better explain 
how it works.

Let me also try to recap what the patch does:

 - ExactPhraseScorer returns a conjunctions on its terms as an approximation, 
and 'matches()' consists of checking positions.

 - ConjunctionScorer only returns an approximation if one of the clauses 
supports approximations. In that case the approximation is the conjunction of 
the approximations of the underlying clauses, and confirmation consists of 
calling 'matches()' on all underlying clauses that support approximations.

Some concrete examples:

 - {{+A +B}} does not support approximations since term scorer does not expose 
approximations
 - {{"A B"}} (phrase) returns {{+A +B}} as an approximation
 - {{+ "A B" + C}} returns {{+(+A +B) +C}} as an approximation

> two phase intersection
> ----------------------
>
>                 Key: LUCENE-6198
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6198
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Robert Muir
>         Attachments: LUCENE-6198.patch, LUCENE-6198.patch, LUCENE-6198.patch, 
> LUCENE-6198.patch
>
>
> Currently some scorers have to do a lot of per-document work to determine if 
> a document is a match. The simplest example is a phrase scorer, but there are 
> others (spans, sloppy phrase, geospatial, etc).
> Imagine a conjunction with two MUST clauses, one that is a term that matches 
> all odd documents, another that is a phrase matching all even documents. 
> Today this conjunction will be very expensive, because the zig-zag 
> intersection is reading a ton of useless positions.
> The same problem happens with filteredQuery and anything else that acts like 
> a conjunction.



--
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