Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.9
    • Fix Version/s: 2.9.2, 3.0.1, 4.0-ALPHA
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      Queries consisting of only zero boosts result in incorrect results.

      1. LUCENE-2270.patch
        1.0 kB
        Yonik Seeley

        Issue Links

          Activity

          Hide
          Hoss Man added a comment -

          causes SOLR-1778

          Show
          Hoss Man added a comment - causes SOLR-1778
          Hide
          Yonik Seeley added a comment -

          committed to trunk and branches 2.9, 3.0

          Show
          Yonik Seeley added a comment - committed to trunk and branches 2.9, 3.0
          Hide
          Yonik Seeley added a comment -

          OK, I'll commit this shortly to all of the various branches.

          Show
          Yonik Seeley added a comment - OK, I'll commit this shortly to all of the various branches.
          Hide
          Yonik Seeley added a comment -

          Another thing to note is that this patch does not completely solve all the problems caused by the new Collectors using Sentinels.
          The bigger question is, what to do in general about -Inf and NaN scores.

          There are different ways we could handle this:
          1) They are not valid, but all other scores are valid. This is actually problematic, since individual queries may be in compliance, but when combined (in say a boolean query), produce a -Inf. So in practice, this would prohibit "large" negative scores. Not great since it's ill-defined and no one knows exactly where the limit is.
          2) Consider -Inf (and maybe NaN) as valid scores and change the sorting Collectors to handle them.

          Show
          Yonik Seeley added a comment - Another thing to note is that this patch does not completely solve all the problems caused by the new Collectors using Sentinels. The bigger question is, what to do in general about -Inf and NaN scores. There are different ways we could handle this: 1) They are not valid, but all other scores are valid. This is actually problematic, since individual queries may be in compliance, but when combined (in say a boolean query), produce a -Inf. So in practice, this would prohibit "large" negative scores. Not great since it's ill-defined and no one knows exactly where the limit is. 2) Consider -Inf (and maybe NaN) as valid scores and change the sorting Collectors to handle them.
          Hide
          Yonik Seeley added a comment -

          Attached patch that "normalizes" the query norm in Query.weight

          Show
          Yonik Seeley added a comment - Attached patch that "normalizes" the query norm in Query.weight
          Hide
          Yonik Seeley added a comment -

          The problem is twofold: a query with only zero boosts on it's clauses results in a query norm of infiinity, and a normalization factor for the query of NaN (0*Inf). This has always been the case. But our new collectors cannot handle these score values and mess up - for example returning docids equal to the sentinal value Integer.MAX_VAL.

          Show
          Yonik Seeley added a comment - The problem is twofold: a query with only zero boosts on it's clauses results in a query norm of infiinity, and a normalization factor for the query of NaN (0*Inf). This has always been the case. But our new collectors cannot handle these score values and mess up - for example returning docids equal to the sentinal value Integer.MAX_VAL.

            People

            • Assignee:
              Yonik Seeley
              Reporter:
              Yonik Seeley
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development