[
https://issues.apache.org/jira/browse/LUCENE-6198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14289801#comment-14289801
]
Yonik Seeley commented on LUCENE-6198:
--------------------------------------
I had thought about this a while ago via adding something like
{code}
interface ApproximateDISI {
int guessNext(); // returns next doc that has a chance of matching
int guessAdvance(int target); // returns next doc after target that has a
chance of matching
boolean matches();
}
{code}
And then some scorers could optionally implement ApproximateDISI.
So I guess the main diff would come down to "instanceof ApproximateDISI" vs
"getApproximation() != null" ?
> 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
>
>
> 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]