Package org.apache.lucene.facet.taxonomy
Class OrdinalMappingLeafReader
- java.lang.Object
-
- org.apache.lucene.index.IndexReader
-
- org.apache.lucene.index.LeafReader
-
- org.apache.lucene.index.FilterLeafReader
-
- org.apache.lucene.facet.taxonomy.OrdinalMappingLeafReader
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class OrdinalMappingLeafReader extends FilterLeafReader
AFilterLeafReader
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 anDirectoryTaxonomyWriter.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<LeafReaderContext> leaves = reader.leaves(); LeafReader wrappedLeaves[] = new LeafReader[leaves.size()]; for (int i = 0; i < leaves.size(); i++) { wrappedLeaves[i] = new OrdinalMappingLeafReader(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.FilterLeafReader
FilterLeafReader.FilterFields, FilterLeafReader.FilterPostingsEnum, FilterLeafReader.FilterTerms, FilterLeafReader.FilterTermsEnum
-
Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader
IndexReader.CacheHelper, IndexReader.CacheKey, IndexReader.ClosedListener
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.index.FilterLeafReader
in
-
-
Constructor Summary
Constructors Constructor Description OrdinalMappingLeafReader(LeafReader in, int[] ordinalMap, FacetsConfig srcConfig)
Wraps an LeafReader, mapping ordinals according to the ordinalMap, using the providedFacetsConfig
which was used to build the wrapped reader.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected BytesRef
encode(IntsRef ordinals)
Deprecated.Custom binary formats are no longer directly supported for taxonomy faceting starting in Lucene 9BinaryDocValues
getBinaryDocValues(String field)
IndexReader.CacheHelper
getCoreCacheHelper()
protected OrdinalsReader
getOrdinalsReader(String field)
Deprecated.Custom binary formats are no longer directly supported for taxonomy faceting starting in Lucene 9IndexReader.CacheHelper
getReaderCacheHelper()
SortedNumericDocValues
getSortedNumericDocValues(String field)
-
Methods inherited from class org.apache.lucene.index.FilterLeafReader
checkIntegrity, doClose, document, getByteVectorValues, getDelegate, getFieldInfos, getFloatVectorValues, getLiveDocs, getMetaData, getNormValues, getNumericDocValues, getPointValues, getSortedDocValues, getSortedSetDocValues, getTermVectors, maxDoc, numDocs, searchNearestVectors, searchNearestVectors, storedFields, terms, termVectors, toString, unwrap
-
Methods inherited from class org.apache.lucene.index.LeafReader
docFreq, getContext, getDocCount, getSumDocFreq, getSumTotalTermFreq, postings, postings, searchNearestVectors, searchNearestVectors, totalTermFreq
-
Methods inherited from class org.apache.lucene.index.IndexReader
close, decRef, document, document, ensureOpen, equals, getRefCount, getTermVector, hasDeletions, hashCode, incRef, leaves, notifyReaderClosedListeners, numDeletedDocs, registerParentReader, tryIncRef
-
-
-
-
Constructor Detail
-
OrdinalMappingLeafReader
public OrdinalMappingLeafReader(LeafReader in, int[] ordinalMap, FacetsConfig srcConfig)
Wraps an LeafReader, mapping ordinals according to the ordinalMap, using the providedFacetsConfig
which was used to build the wrapped reader.
-
-
Method Detail
-
encode
@Deprecated protected BytesRef encode(IntsRef ordinals)
Deprecated.Custom binary formats are no longer directly supported for taxonomy faceting starting in Lucene 9Expert: encodes category ordinals into a BytesRef. Override in case you use custom encoding, other than the default done by FacetsConfig.
-
getOrdinalsReader
@Deprecated protected OrdinalsReader getOrdinalsReader(String field)
Deprecated.Custom binary formats are no longer directly supported for taxonomy faceting starting in Lucene 9Expert: override in case you used custom encoding for the categories under this field.
-
getBinaryDocValues
public BinaryDocValues getBinaryDocValues(String field) throws IOException
- Overrides:
getBinaryDocValues
in classFilterLeafReader
- Throws:
IOException
-
getSortedNumericDocValues
public SortedNumericDocValues getSortedNumericDocValues(String field) throws IOException
- Overrides:
getSortedNumericDocValues
in classFilterLeafReader
- Throws:
IOException
-
getCoreCacheHelper
public IndexReader.CacheHelper getCoreCacheHelper()
- Specified by:
getCoreCacheHelper
in classLeafReader
-
getReaderCacheHelper
public IndexReader.CacheHelper getReaderCacheHelper()
- Specified by:
getReaderCacheHelper
in classIndexReader
-
-