[
https://issues.apache.org/jira/browse/LUCENE-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael McCandless updated LUCENE-2686:
---------------------------------------
Attachment: LUCENE-2686.patch
So... the good news is I made a new scorer (basically copied
DisjunctionMaxScorer and then tweaked from there) that scores the OR-only case.
All tests pass w/ this new scorer.
And more good news is that if you don't score (I sort by doctitle to do that),
you get a speedup -- 7.7% in my simplistic test (prefix query unit*, expands to
988 terms, but I force it to do a scoring BQ rewrite, plus force it to use BS2
not BS -- the nocommits in the patch).
But the bad news is with scoring on it's 22.7% slower!
And, the weird news is, I discovered accidentally that BS2 is much (> 2X)
faster for this one query. I think we need to modify the criteria that decides
whether to use BS or BS2... maybe when there are lots of lowish-docFreq terms,
BS2 is better?
> DisjunctionSumScorer should not call .score on sub scorers until consumer
> calls .score
> --------------------------------------------------------------------------------------
>
> Key: LUCENE-2686
> URL: https://issues.apache.org/jira/browse/LUCENE-2686
> Project: Lucene - Java
> Issue Type: Bug
> Components: Search
> Reporter: Michael McCandless
> Assignee: Michael McCandless
> Fix For: 3.1, 4.0
>
> Attachments: LUCENE-2686.patch, Test2LUCENE2590.java
>
>
> Spinoff from java-user thread "question about Scorer.freq()" from Koji...
> BooleanScorer2 uses DisjunctionSumScorer to score only-SHOULD-clause boolean
> queries.
> But, this scorer does too much work for collectors that never call .score,
> because it scores while it's matching. It should only call .score on the
> subs when the caller calls its .score.
> This also has the side effect of messing up advanced collectors that gather
> the freq() of the subs (using LUCENE-2590).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]