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

Fix DocsEnum freq flag consistent with DocsAndPositionsEnum flags

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.0-BETA, 6.0
    • None
    • None
    • New

    Description

      Followup from LUCENE-4230

      Currently today to pull freq() from a docsEnum, you have to pass a boolean 'needsFreqs=true'. If the field omitsTF, then it returns null (and you need to call it again, with 'needsFreqs=false', in which case you are not supposed to call freq().

      We fixed this in D&PEnum in 4230: as you can tell from the fieldinfos whether they are there or not, there is no need to return null, it makes consumer code complicated.

      So this issue is just to have docs(Bits, reuse) which calls docs(Bits, reuse, FLAG_FREQS) by default. if they arent there, the docsenum returns 1 for freq().

      So calling docs(Bits, reuse, 0) is just an optimization hint to the codec that you never need them (same as the payload/offset flags for docsAndPositions)

      Attachments

        1. LUCENE-4273.patch
          125 kB
          Robert Muir
        2. LUCENE-4273.patch
          125 kB
          Michael McCandless
        3. LUCENE-4273.patch
          122 kB
          Robert Muir

        Activity

          People

            Unassigned Unassigned
            rcmuir Robert Muir
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: