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

Improve Norms merging APIs

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 4.0-ALPHA
    • None
    • None
    • None
    • New

    Description

      Spinoff from LUCENE-2632, since it took us a fair amount of time to track down,
      I think its worth trying to improve the API.

      The DocValuesConsumer api's default merge implementation calls canMerge/getDocValuesForMerge/getDocValuesType (protected methods).

      but its a little strange how this works:

      • all norms implementations must override the default DV implementation, or they might accidentally merge docvalues into their norms!
      • preflex-RW only overrides 2 of these... how is its norms merging working... is it?
      • its tricky obviously for issues like LUCENE-2632: as delegating merge() is not very obvious either.

      So I think we should look at this, instead of having all NormsWriters override DocValues, redefining these methods in a way thats
      not a "is-a" relationship, we could do something else like have split NormsConsumer/DVConsumer apis that share a package-private base class.

      This way a norms impl just extends NormsConsumer and there are no traps.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated: