[ 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to