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

Create SearcherTaxoManager

Details

    • New Feature
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 4.3, 6.0
    • modules/facet
    • None
    • New, Patch Available

    Description

      If an application wants to use an IndexSearcher and TaxonomyReader in a SearcherManager-like fashion, it cannot use a separate SearcherManager, and say a TaxonomyReaderManager, because the IndexSearcher and TaxoReader instances need to be in sync. That is, the IS-TR pair must match, or otherwise the category ordinals that are encoded in the search index might not match the ones in the taxonomy index.

      This can happen if someone reopens the IndexSearcher's IndexReader, but does not refresh the TaxonomyReader, and the category ordinals that exist in the reopened IndexReader are not yet visible to the TaxonomyReader instance.

      I'd like to create a SearcherTaxoManager (which is a ReferenceManager) which manages an IndexSearcher and TaxonomyReader pair. Then an application will call:

      SearcherTaxoPair pair = manager.acquire();
      try {
        IndexSearcher searcher = pair.searcher;
        TaxonomyReader taxoReader = pair.taxoReader;
        // do something with them
      } finally {
        manager.release(pair);
        pair = null;
      }
      

      Attachments

        1. LUCENE-3786.patch
          19 kB
          Michael McCandless
        2. LUCENE-3786.patch
          18 kB
          Michael McCandless
        3. LUCENE-3786.patch
          18 kB
          Michael McCandless
        4. LUCENE-3786.patch
          16 kB
          Michael McCandless
        5. LUCENE-3786-3x-nocommit.patch
          22 kB
          Shai Erera

        Activity

          People

            mikemccand Michael McCandless
            shaie Shai Erera
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: