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

Allow users to create their own DirectoryTaxonomyReaders with empty taxoArrays instead of letting the taxoEpoch decide

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Patch Available
    • Minor
    • Resolution: Unresolved
    • 9.1
    • None
    • modules/facet
    • None
    • New

    Description

      I was experimenting with the taxonomy index and DirectoryTaxonomyReaders in my day job where we were trying to replace the index underneath a reader asynchronously and then call the doOpenIfChanged call on it.

      It turns out that the taxonomy index uses its own index based counter (the taxonomyIndexEpoch) to determine if the index was opened in write mode after the last time it was written and if not, it directly tries to reuse the previous taxoArrays it had created. This logic fails in a scenario where both the old and new index were opened just once but the index itself is completely different in both the cases.

      In such a case, it would be good to give the user the flexibility to inform the DTR to recreate its taxoArrays, ordinalCache and categoryCache (not refreshing these arrays causes it to fail in various ways). Luckily, such a constructor already exists! But it is private today! The idea here is to allow subclasses of DTR to use this constructor.

      Curious to see what other folks think about this idea.

      Attachments

        Activity

          People

            Unassigned Unassigned
            gworah Gautam Worah
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 8.5h
                8.5h