public final class BlockTreeTermsReader extends FieldsProducer
NOTE: this terms dictionary supports min/maxItemsPerBlock during indexing to control how much memory the terms index uses.
If auto-prefix terms were indexed (see
BlockTreeTermsWriter), then the Terms.intersect(org.apache.lucene.util.automaton.CompiledAutomaton, org.apache.lucene.util.BytesRef)
implementation here will make use of these terms only if the
automaton has a binary sink state, i.e. an accept state
which has a transition to itself accepting all byte values.
For example, both PrefixQuery and TermRangeQuery
pass such automata to Terms.intersect(org.apache.lucene.util.automaton.CompiledAutomaton, org.apache.lucene.util.BytesRef).
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 | Field and Description |
|---|---|
static int |
VERSION_AUTO_PREFIX_TERMS_REMOVED
Auto-prefix terms have been superseded by points.
|
static int |
VERSION_CURRENT
Current terms format.
|
static int |
VERSION_START
Initial terms format.
|
EMPTY_ARRAY| Constructor and Description |
|---|
BlockTreeTermsReader(PostingsReaderBase postingsReader,
SegmentReadState state)
Sole constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
checkIntegrity()
Checks consistency of this reader.
|
void |
close() |
Collection<Accountable> |
getChildResources()
Returns nested resources of this class.
|
Iterator<String> |
iterator()
Returns an iterator that will step through all fields
names.
|
long |
ramBytesUsed()
Return the memory usage of this object in bytes.
|
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. |
String |
toString() |
getMergeInstanceclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic static final int VERSION_START
public static final int VERSION_AUTO_PREFIX_TERMS_REMOVED
public static final int VERSION_CURRENT
public BlockTreeTermsReader(PostingsReaderBase postingsReader, SegmentReadState state) throws IOException
IOExceptionpublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableclose in class FieldsProducerIOExceptionpublic Iterator<String> iterator()
Fieldspublic Terms terms(String field) throws IOException
FieldsTerms for this field. This will return
null if the field does not exist.terms in class FieldsIOExceptionpublic int size()
FieldsFields.iterator() will return as many field names.public long ramBytesUsed()
Accountablepublic Collection<Accountable> getChildResources()
AccountableAccountablespublic void checkIntegrity()
throws IOException
FieldsProducerNote that this may be costly in terms of I/O, e.g. may involve computing a checksum value against large data files.
checkIntegrity in class FieldsProducerIOExceptionCopyright © 2000-2018 Apache Software Foundation. All Rights Reserved.