public class BlockTreeTermsReader extends FieldsProducer
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
.
Modifier and Type | Class and Description |
---|---|
class |
BlockTreeTermsReader.FieldReader
BlockTree's implementation of
Terms . |
static class |
BlockTreeTermsReader.Stats
BlockTree statistics for a single field
returned by
BlockTreeTermsReader.FieldReader.computeStats() . |
EMPTY_ARRAY
Constructor and Description |
---|
BlockTreeTermsReader(Directory dir,
FieldInfos fieldInfos,
SegmentInfo info,
PostingsReaderBase postingsReader,
IOContext ioContext,
String segmentSuffix,
int indexDivisor)
Sole constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
Iterator<String> |
iterator()
Returns an iterator that will step through all fields
names.
|
long |
ramBytesUsed()
Returns approximate RAM bytes used
|
protected int |
readHeader(IndexInput input)
Reads terms file header.
|
protected int |
readIndexHeader(IndexInput input)
Reads index file header.
|
protected void |
seekDir(IndexInput input,
long dirOffset)
Seek
input to the directory offset. |
int |
size()
Returns the number of fields or -1 if the number of
distinct field names is unknown.
|
Terms |
terms(String field)
Get the
Terms for this field. |
getUniqueTermCount
public BlockTreeTermsReader(Directory dir, FieldInfos fieldInfos, SegmentInfo info, PostingsReaderBase postingsReader, IOContext ioContext, String segmentSuffix, int indexDivisor) throws IOException
IOException
protected int readHeader(IndexInput input) throws IOException
IOException
protected int readIndexHeader(IndexInput input) throws IOException
IOException
protected void seekDir(IndexInput input, long dirOffset) throws IOException
input
to the directory offset.IOException
public void close() throws IOException
close
in interface Closeable
close
in class FieldsProducer
IOException
public Iterator<String> iterator()
Fields
public Terms terms(String field) throws IOException
Fields
Terms
for this field. This will return
null if the field does not exist.terms
in class Fields
IOException
public int size()
Fields
Fields.iterator()
will return as many field names.public long ramBytesUsed()
FieldsProducer
ramBytesUsed
in class FieldsProducer
Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.