Class BlockTreeTermsReader
A block-based terms index and dictionary that assigns terms to variable length blocks according to how they share prefixes. The terms index is a prefix trie whose leaves are term blocks. The advantage of this approach is that SeekExact() is often able to determine a term cannot exist without doing any IO, and intersection with Automata is very fast. Note that this terms dictionary has it's own fixed terms index (ie, it does not support a pluggable terms index implementation).
NOTE: this terms dictionary does not support index divisor when opening an IndexReader. Instead, you can change the min/maxItemsPerBlock during indexing.
The data structure used by this implementation is very similar to a burst trie (http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.3499), but with added logic to break up too-large blocks of all terms sharing a given prefix into smaller ones.
Use CheckIndex with the -verbose
option to see summary statistics on the blocks in the
dictionary.
See BlockTreeTermsWriter.
@lucene.experimental
Assembly: DistributedLucene.Net.dll
Syntax
public class BlockTreeTermsReader : FieldsProducer, IDisposable
Constructors
Name | Description |
---|---|
BlockTreeTermsReader(Directory, FieldInfos, SegmentInfo, PostingsReaderBase, IOContext, String, Int32) | Sole constructor. |
Properties
Name | Description |
---|---|
Count |
Methods
Name | Description |
---|---|
CheckIntegrity() | |
Dispose(Boolean) | Disposes all resources used by this object. |
GetEnumerator() | |
GetTerms(String) | |
RamBytesUsed() | |
ReadHeader(IndexInput) | Reads terms file header. |
ReadIndexHeader(IndexInput) | Reads index file header. |
SeekDir(IndexInput, Int64) | Seek |