Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-5961

FunctionValues.exist(int) isn't returning false in cases where it should for many "math" based value sources

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 5.0, 6.0
    • None
    • None
    • New

    Description

      The FunctionValues class contains an exist(int doc) method with a default implementation that returns true - field based DocValues override this method as appropriate, but most of the "function" based subclasses in the code (typically anonymous subclasses of "FloatDocValues") don't override this method when wrapping other ValueSources.

      So for example: the FunctionValues returned by ProductFloatFunction.getValues() will say that a value exists for any doc, even if that ProductFloatFunction wraps two FloatFieldSources that don't exist for any docs

      Attachments

        1. LUCENE-5961.patch
          37 kB
          Chris M. Hostetter
        2. LUCENE-5961.patch
          35 kB
          Chris M. Hostetter
        3. LUCENE-5961.patch
          2 kB
          Chris M. Hostetter

        Issue Links

          Activity

            People

              hossman Chris M. Hostetter
              hossman Chris M. Hostetter
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: