org.apache.lucene.facet.util

## Class OrdinalMappingAtomicReader

- java.lang.Object
- - org.apache.lucene.index.IndexReader
  - - org.apache.lucene.index.AtomicReader
    - - org.apache.lucene.index.FilterAtomicReader
      - - org.apache.lucene.facet.util.OrdinalMappingAtomicReader

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public class OrdinalMappingAtomicReader
      extends FilterAtomicReader

  A `FilterAtomicReader` for updating facets ordinal references, based on an ordinal map. You should use this code in conjunction with merging taxonomies - after you merge taxonomies, you receive an `DirectoryTaxonomyWriter.OrdinalMap` which maps the 'old' ordinals to the 'new' ones. You can use that map to re-map the doc values which contain the facets information (ordinals) either before or while merging the indexes.

  For re-mapping the ordinals during index merge, do the following:

       // merge the old taxonomy with the new one.
       OrdinalMap map = new MemoryOrdinalMap();
       DirectoryTaxonomyWriter.addTaxonomy(srcTaxoDir, map);
       int[] ordmap = map.getMap();

       // Add the index and re-map ordinals on the go
       DirectoryReader reader = DirectoryReader.open(oldDir);
       IndexWriterConfig conf = new IndexWriterConfig(VER, ANALYZER);
       IndexWriter writer = new IndexWriter(newDir, conf);
       List<AtomicReaderContext> leaves = reader.leaves();
         AtomicReader wrappedLeaves[] = new AtomicReader[leaves.size()];
         for (int i = 0; i < leaves.size(); i++) {
           wrappedLeaves[i] = new OrdinalMappingAtomicReader(leaves.get(i).reader(), ordmap);
         }
       writer.addIndexes(new MultiReader(wrappedLeaves));
       writer.commit();

  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.lucene.index.FilterAtomicReader

      `FilterAtomicReader.FilterDocsAndPositionsEnum, FilterAtomicReader.FilterDocsEnum, FilterAtomicReader.FilterFields, FilterAtomicReader.FilterTerms, FilterAtomicReader.FilterTermsEnum`

    - ### Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader

      `IndexReader.ReaderClosedListener`

  - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.index.FilterAtomicReader

      `in`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OrdinalMappingAtomicReader(AtomicReader in, int[] ordinalMap)` Wraps an AtomicReader, mapping ordinals according to the ordinalMap.
    `OrdinalMappingAtomicReader(AtomicReader in, int[] ordinalMap, FacetIndexingParams indexingParams)` Wraps an AtomicReader, mapping ordinals according to the ordinalMap, using the provided indexingParams.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `BinaryDocValues` | `getBinaryDocValues(String field)`

    - ### Methods inherited from class org.apache.lucene.index.FilterAtomicReader

      `doClose, document, fields, getCombinedCoreAndDeletesKey, getCoreCacheKey, getFieldInfos, getLiveDocs, getNormValues, getNumericDocValues, getSortedDocValues, getSortedSetDocValues, getTermVectors, hasDeletions, maxDoc, numDocs, toString`

    - ### Methods inherited from class org.apache.lucene.index.AtomicReader

      `docFreq, getContext, hasNorms, termDocsEnum, termPositionsEnum, terms, totalTermFreq`

    - ### Methods inherited from class org.apache.lucene.index.IndexReader

      `addReaderClosedListener, close, decRef, document, document, ensureOpen, equals, getRefCount, getTermVector, hashCode, incRef, leaves, numDeletedDocs, open, open, open, open, open, registerParentReader, removeReaderClosedListener, tryIncRef`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### OrdinalMappingAtomicReader

          public OrdinalMappingAtomicReader(AtomicReader in,
                                    int[] ordinalMap)

      Wraps an AtomicReader, mapping ordinals according to the ordinalMap. Calls `OrdinalMappingAtomicReader(in, ordinalMap, new DefaultFacetIndexingParams())`

    - #### OrdinalMappingAtomicReader

          public OrdinalMappingAtomicReader(AtomicReader in,
                                    int[] ordinalMap,
                                    FacetIndexingParams indexingParams)

      Wraps an AtomicReader, mapping ordinals according to the ordinalMap, using the provided indexingParams.

  - ### Method Detail

    - #### getBinaryDocValues

          public BinaryDocValues getBinaryDocValues(String field)
                                             throws IOException

      Overrides:
        `getBinaryDocValues` in class `FilterAtomicReader`
      Throws:
        `IOException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.