[ 
https://issues.apache.org/jira/browse/LUCENE-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13453259#comment-13453259
 ] 

Uwe Schindler commented on LUCENE-2684:
---------------------------------------

An idea (separate issue!) would be:
BS1 completely violates the scorer interface, the only method you can call is 
the one taking a Collector. In my opinion, BS1 should *not* implement the 
Scorer interface, that the whole bug! It should maybe some separate class like 
OutOfOrderDocIdReporter (name is just an example) that only implements 
collect(Collector). And the navigation api (advance, next) should be separated 
from score() and freq() - a simple java interface Scorer. So the current 
in-order scorer would be a simple DocIdSetIterator that additionally implements 
the Scorer interface (to provide score() and freq()) and current out-of-order 
scorers would implement only the OutOfOrderDocIdReporter API and pass a inlined 
Scorer interface (without advance and next) to the setScorer() method (like 
BucketScorer currently).
                
> it's not possible to access sub-query's freq information if BooleanScorer is 
> use
> --------------------------------------------------------------------------------
>
>                 Key: LUCENE-2684
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2684
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/search
>            Reporter: Michael McCandless
>             Fix For: 4.1
>
>
> LUCENE-2590 added an advanced feature, allowing an app to gather all 
> sub-scorers for any Query.
> This is powerful because then, during collection, the app can get some 
> details about how each sub-query "participated" in the overall match for the 
> given document.
> However, I think this is completely broken if the BooleanQuery uses 
> BooleanScorer, because that scorer is not doc-at-once.  Instead, it batch 
> processes chunks of 2048 sequential docIDs per scorer.  This is a big 
> performance gain, but it means that the sub scorers will all be positioned to 
> the end of the 2048 doc chunk while the docs that matched within that chunk 
> are collected.
> I don't think we can easily fix this... likely the "fix" is to make it 
> easy(ier) to force BQ to use BooleanScorer2 (which is doc-at-once)?  It is 
> actually possible to force this, today, by having your collector return false 
> from acceptDocsOutOfOrder...

--
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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to