C# Class Lucene.Net.Facet.Taxonomy.CachedOrdinalsReader

A per-segment cache of documents' facet ordinals. Every CachedOrds holds the ordinals in a raw {@code int[]}, and therefore consumes as much RAM as the total number of ordinals found in the segment, but saves the CPU cost of decoding ordinals during facet counting.

NOTE: every CachedOrds is limited to 2.1B total ordinals. If that is a limitation for you then consider limiting the segment size to fewer documents, or use an alternative cache which pages through the category ordinals.

NOTE: when using this cache, it is advised to use a DocValuesFormat that does not cache the data in memory, at least for the category lists fields, or otherwise you'll be doing double-caching.

NOTE: create one instance of this and re-use it for all facet implementations (the cache is per-instance, not static).

Inheritance: Lucene.Net.Facet.Taxonomy.OrdinalsReader, Accountable
Mostra file Open project: apache/lucenenet Class Usage Examples

Public Methods

Method Description
CachedOrdinalsReader ( Lucene.Net.Facet.Taxonomy.OrdinalsReader source ) : Lucene.Net.Support

Sole constructor.

GetReader ( AtomicReaderContext context ) : OrdinalsSegmentReader
RamBytesUsed ( ) : long

Private Methods

Method Description
GetCachedOrds ( AtomicReaderContext context ) : CachedOrds

Method Details

CachedOrdinalsReader() public method

Sole constructor.
public CachedOrdinalsReader ( Lucene.Net.Facet.Taxonomy.OrdinalsReader source ) : Lucene.Net.Support
source Lucene.Net.Facet.Taxonomy.OrdinalsReader
return Lucene.Net.Support

GetReader() public method

public GetReader ( AtomicReaderContext context ) : OrdinalsSegmentReader
context AtomicReaderContext
return OrdinalsSegmentReader

RamBytesUsed() public method

public RamBytesUsed ( ) : long
return long