org.apache.lucene.facet.util
public class OrdinalMappingAtomicReader extends FilterAtomicReader
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();
FilterAtomicReader.FilterDocsAndPositionsEnum, FilterAtomicReader.FilterDocsEnum, FilterAtomicReader.FilterFields, FilterAtomicReader.FilterTerms, FilterAtomicReader.FilterTermsEnumIndexReader.ReaderClosedListenerin| 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.
|
| Modifier and Type | Method and Description |
|---|---|
BinaryDocValues |
getBinaryDocValues(String field) |
doClose, document, fields, getDocsWithField, getFieldInfos, getLiveDocs, getNormValues, getNumericDocValues, getSortedDocValues, getSortedSetDocValues, getTermVectors, maxDoc, numDocs, toStringdocFreq, getContext, getDocCount, getSumDocFreq, getSumTotalTermFreq, hasNorms, termDocsEnum, termPositionsEnum, terms, totalTermFreqaddReaderClosedListener, close, decRef, document, document, ensureOpen, equals, getCombinedCoreAndDeletesKey, getCoreCacheKey, getRefCount, getTermVector, hasDeletions, hashCode, incRef, leaves, numDeletedDocs, open, open, open, open, open, registerParentReader, removeReaderClosedListener, tryIncRefpublic OrdinalMappingAtomicReader(AtomicReader in, int[] ordinalMap)
OrdinalMappingAtomicReader(in, ordinalMap, new DefaultFacetIndexingParams())public OrdinalMappingAtomicReader(AtomicReader in, int[] ordinalMap, FacetIndexingParams indexingParams)
public BinaryDocValues getBinaryDocValues(String field) throws IOException
getBinaryDocValues in class FilterAtomicReaderIOExceptionCopyright © 2000-2014 Apache Software Foundation. All Rights Reserved.