lucene
lucene copied to clipboard
Support getMaxScore of DisjunctionSumScorer for non top level scoring clause
Description
Same as https://github.com/apache/lucene/pull/13043. WANDScorer BlockMaxConjunctionScorer doesn't work for disjunctions within disjunctions conjunctions.
@jpountz Could you take a look?
@jpountz Thank you for your review.
I see that we have a rewrite rule that inlines nested disjunctions, so presumably this is more about disjunctions within conjunctions than disjunctions within disjunctions?
Ah, yes. That's true.
We have tasks in nightly benchmarks that should be impacted by this change, e.g. http://people.apache.org/~mikemccand/lucenebench/AndHighOrMedMed.html, I'm curious if you tried to run them?
I'm not sure how to run these benchmarks. Is there any good instruction?
This? https://github.com/mikemccand/luceneutil
This indeed! It's a bit manual, but it's what powers nightly benchmarks and what we run to check the performance impact of the changes that we merge.
@jpountz Thanks. The result is here.
TaskQPS baseline StdDevQPS my_modified_version StdDev Pct diff p-value
AndMedOrHighHigh 21.24 (7.1%) 20.61 (3.5%) -3.0% ( -12% - 8%) 0.091
AndHighOrMedMed 30.97 (4.0%) 30.51 (3.5%) -1.5% ( -8% - 6%) 0.216
I run this with wikimediumall
and verifyCount=false
. The hit counts were smaller than baseline. This means we can skip more items with this change. Is it right?
This PR has not had activity in the past 2 weeks, labeling it as stale. If the PR is waiting for review, notify the [email protected] list. Thank you for your contribution!
This means we can skip more items with this change.
Indeed!
@jpountz Thank you for your review! I fixed the issue.