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