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 2019/07/17 11:33:00 UTC

[jira] [Commented] (LUCENE-8922) Speed up retrieval of top hits of DisjunctionMaxQuery

    [ 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org