You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Adrien Grand (JIRA)" <ji...@apache.org> on 2015/12/03 20:39:11 UTC
[jira] [Updated] (LUCENE-6815) Should DisjunctionScorer advance
more lazily?
[ https://issues.apache.org/jira/browse/LUCENE-6815?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adrien Grand updated LUCENE-6815:
---------------------------------
Attachment: LUCENE-6815.patch
Updated patch. This now leverages the new matchCost() API in order to match sub scorers by order of cost. Unfortunately regular disjunctions get a bit slower with this patch:
(bulk scoring has been disabled for this run)
{noformat}
TaskQPS baseline StdDev QPS patch StdDev Pct diff
OrHighLow 60.64 (4.8%) 57.41 (4.0%) -5.3% ( -13% - 3%)
OrHighHigh 17.07 (4.2%) 16.27 (3.5%) -4.7% ( -11% - 3%)
OrHighMed 66.59 (5.1%) 63.57 (3.6%) -4.5% ( -12% - 4%)
Fuzzy1 52.48 (6.8%) 51.35 (8.0%) -2.2% ( -15% - 13%)
Fuzzy2 61.04 (19.3%) 59.90 (18.5%) -1.9% ( -33% - 44%)
OrHighNotHigh 65.22 (2.7%) 64.84 (3.4%) -0.6% ( -6% - 5%)
OrHighNotMed 50.97 (3.8%) 50.71 (4.1%) -0.5% ( -8% - 7%)
HighTerm 68.99 (3.7%) 68.64 (4.0%) -0.5% ( -7% - 7%)
OrNotHighMed 238.28 (2.3%) 237.43 (2.7%) -0.4% ( -5% - 4%)
LowTerm 667.00 (5.0%) 664.74 (5.5%) -0.3% ( -10% - 10%)
AndHighHigh 33.10 (1.4%) 33.01 (1.7%) -0.3% ( -3% - 2%)
MedTerm 185.93 (3.5%) 185.42 (3.8%) -0.3% ( -7% - 7%)
Wildcard 40.77 (3.8%) 40.67 (4.6%) -0.2% ( -8% - 8%)
HighPhrase 38.55 (2.7%) 38.48 (2.6%) -0.2% ( -5% - 5%)
OrHighNotLow 37.43 (3.7%) 37.38 (4.4%) -0.1% ( -7% - 8%)
HighSloppyPhrase 17.66 (2.6%) 17.64 (2.6%) -0.1% ( -5% - 5%)
LowPhrase 48.82 (1.1%) 48.81 (1.8%) -0.0% ( -2% - 2%)
HighSpanNear 13.84 (2.8%) 13.83 (2.7%) -0.0% ( -5% - 5%)
OrNotHighHigh 55.47 (2.5%) 55.53 (2.3%) 0.1% ( -4% - 4%)
MedPhrase 167.70 (3.0%) 167.86 (3.5%) 0.1% ( -6% - 6%)
MedSloppyPhrase 30.44 (1.7%) 30.49 (1.7%) 0.2% ( -3% - 3%)
LowSloppyPhrase 72.06 (1.5%) 72.23 (1.2%) 0.2% ( -2% - 3%)
LowSpanNear 23.84 (2.2%) 23.96 (2.5%) 0.5% ( -4% - 5%)
IntNRQ 8.14 (5.3%) 8.19 (5.5%) 0.5% ( -9% - 12%)
AndHighMed 216.29 (1.8%) 217.53 (1.8%) 0.6% ( -2% - 4%)
AndHighLow 882.75 (7.1%) 887.86 (9.3%) 0.6% ( -14% - 18%)
MedSpanNear 47.85 (2.9%) 48.14 (3.0%) 0.6% ( -5% - 6%)
Prefix3 33.98 (3.9%) 34.22 (4.0%) 0.7% ( -6% - 8%)
OrNotHighLow 757.50 (5.0%) 763.60 (5.5%) 0.8% ( -9% - 11%)
Respell 61.43 (3.3%) 61.94 (2.7%) 0.8% ( -5% - 7%)
{noformat}
I'll look into how I can fix it.
> Should DisjunctionScorer advance more lazily?
> ---------------------------------------------
>
> Key: LUCENE-6815
> URL: https://issues.apache.org/jira/browse/LUCENE-6815
> Project: Lucene - Core
> Issue Type: Improvement
> Reporter: Adrien Grand
> Assignee: Adrien Grand
> Priority: Minor
> Attachments: LUCENE-6815.patch, LUCENE-6815.patch
>
>
> Today if you call DisjunctionScorer.advance(X), it will try to advance all sub scorers to X. However, if DisjunctionScorer is being intersected with another scorer (which is almost always the case as we use BooleanScorer for top-level disjunctions), we could stop as soon as we find one matching sub scorer, and only advance the remaining sub scorers when freq() or score() is called.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org