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

Adrien Grand commented on LUCENE-8922:
--------------------------------------

Here is a patch. It uses the first clause that has a score greater than or 
equal to the minimum competitive score to lead iteration of impacts and 
propagates min competitive scores when the tie break multiplier is 0.

I ran wikibigall with the wikinightly tasks where I added 4 new tasks:
 - DisMaxHighMed: same as OrHighMed but with a DisjunctionMaxQuery and a tie 
break multiplier of 0.1
 - DisMaxHighHigh: same as OrHighHigh but with a DisjunctionMaxQuery and a tie 
break multiplier of 0.1
 - DisMax0HighMed: same as OrHighMed but with a DisjunctionMaxQuery and a tie 
break multiplier of 0
 - DisMax0HighHigh: same as OrHighHigh but with a DisjunctionMaxQuery and a tie 
break multiplier of 0

{noformat}
                    TaskQPS baseline      StdDev   QPS patch      StdDev        
        Pct diff
                  Fuzzy1      177.71     (11.7%)      174.01     (11.2%)   
-2.1% ( -22% -   23%)
            SloppyPhrase        6.26      (6.1%)        6.23      (6.2%)   
-0.4% ( -12% -   12%)
                SpanNear        2.32      (3.0%)        2.32      (3.4%)   
-0.0% (  -6% -    6%)
        IntervalsOrdered        0.85      (1.7%)        0.85      (1.8%)    
0.0% (  -3% -    3%)
                 Prefix3       47.79     (12.6%)       47.85     (12.7%)    
0.1% ( -22% -   29%)
              OrHighHigh        9.87      (2.8%)        9.89      (2.8%)    
0.2% (  -5% -    5%)
                  Phrase       70.88      (3.2%)       71.04      (3.1%)    
0.2% (  -5% -    6%)
                Wildcard      128.13      (8.6%)      128.43      (9.0%)    
0.2% ( -16% -   19%)
              AndHighMed       65.61      (3.5%)       65.85      (2.9%)    
0.4% (  -5% -    6%)
             AndHighHigh       36.41      (3.4%)       36.60      (3.1%)    
0.5% (  -5% -    7%)
         AndHighOrMedMed       25.99      (2.0%)       26.13      (1.8%)    
0.5% (  -3% -    4%)
               OrHighMed       36.42      (2.7%)       36.61      (2.6%)    
0.5% (  -4% -    5%)
                  Fuzzy2       92.96     (16.1%)       93.59     (13.7%)    
0.7% ( -25% -   36%)
                  IntNRQ      132.08     (37.3%)      133.02     (38.0%)    
0.7% ( -54% -  121%)
        AndMedOrHighHigh       26.80      (2.0%)       27.07      (2.1%)    
1.0% (  -3% -    5%)
                    Term     1308.93      (3.6%)     1331.58      (3.7%)    
1.7% (  -5% -    9%)
           DisMaxHighMed       83.40      (3.1%)      111.26      (3.0%)   
33.4% (  26% -   40%)
          DisMaxHighHigh       54.28      (4.8%)       81.35      (4.1%)   
49.9% (  39% -   61%)
         DisMax0HighHigh       45.39      (5.7%)      217.70     (20.1%)  
379.6% ( 334% -  430%)
          DisMax0HighMed      129.09      (3.9%)      905.16     (16.5%)  
601.2% ( 558% -  646%)
{noformat}

> Speed up retrieval of top hits of DisjunctionMaxQuery
> -----------------------------------------------------
>
>                 Key: LUCENE-8922
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8922
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Adrien Grand
>            Priority: Minor
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> There a simple optimization that we are not doing in the case that 
> tieBreakMultiplier is 0: we could propagate the min competitive score to sub 
> clauses as-is.
> Even in the general case, we currently compute the block boundary of the 
> DisjunctionMaxQuery as the minimum of the block boundaries of its sub 
> clauses. This generates blocks that have very low score upper bounds but 
> unfortunately they are also very small, which means that we might sometimes 
> not make progress quickly enough.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to