- java.lang.Object
-
- org.apache.lucene.index.Fields
-
- org.apache.lucene.codecs.FieldsProducer
-
- org.apache.lucene.codecs.blockterms.BlockTermsReader
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Iterable<java.lang.String>
public class BlockTermsReader extends FieldsProducer
Handles a terms dict, but decouples all details of doc/freqs/positions reading to an instance ofPostingsReaderBase
. This class is reusable for codecs that use a different format for docs/freqs/positions (though codecs are also free to make their own terms dict impl).This class also interacts with an instance of
TermsIndexReaderBase
, to abstract away the specific implementation of the terms dict index.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
BlockTermsReader.FieldAndTerm
private class
BlockTermsReader.FieldReader
-
Field Summary
Fields Modifier and Type Field Description private static long
FIELD_READER_RAM_BYTES_USED
private java.util.TreeMap<java.lang.String,BlockTermsReader.FieldReader>
fields
private IndexInput
in
private TermsIndexReaderBase
indexReader
private PostingsReaderBase
postingsReader
-
Fields inherited from class org.apache.lucene.index.Fields
EMPTY_ARRAY
-
-
Constructor Summary
Constructors Constructor Description BlockTermsReader(TermsIndexReaderBase indexReader, PostingsReaderBase postingsReader, SegmentReadState state)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkIntegrity()
Checks consistency of this reader.void
close()
java.util.Iterator<java.lang.String>
iterator()
Returns an iterator that will step through all fields names.private void
seekDir(IndexInput input)
int
size()
Returns the number of fields or -1 if the number of distinct field names is unknown.Terms
terms(java.lang.String field)
Get theTerms
for this field.java.lang.String
toString()
-
Methods inherited from class org.apache.lucene.codecs.FieldsProducer
getMergeInstance
-
-
-
-
Field Detail
-
in
private final IndexInput in
-
postingsReader
private final PostingsReaderBase postingsReader
-
fields
private final java.util.TreeMap<java.lang.String,BlockTermsReader.FieldReader> fields
-
indexReader
private TermsIndexReaderBase indexReader
-
FIELD_READER_RAM_BYTES_USED
private static final long FIELD_READER_RAM_BYTES_USED
-
-
Constructor Detail
-
BlockTermsReader
public BlockTermsReader(TermsIndexReaderBase indexReader, PostingsReaderBase postingsReader, SegmentReadState state) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
seekDir
private void seekDir(IndexInput input) throws java.io.IOException
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in classFieldsProducer
- Throws:
java.io.IOException
-
iterator
public java.util.Iterator<java.lang.String> iterator()
Description copied from class:Fields
Returns an iterator that will step through all fields names. This will not return null.
-
terms
public Terms terms(java.lang.String field) throws java.io.IOException
Description copied from class:Fields
Get theTerms
for this field. This will return null if the field does not exist.
-
size
public int size()
Description copied from class:Fields
Returns the number of fields or -1 if the number of distinct field names is unknown. If >= 0,Fields.iterator()
will return as many field names.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
checkIntegrity
public void checkIntegrity() throws java.io.IOException
Description copied from class:FieldsProducer
Checks consistency of this reader.Note that this may be costly in terms of I/O, e.g. may involve computing a checksum value against large data files.
- Specified by:
checkIntegrity
in classFieldsProducer
- Throws:
java.io.IOException
-
-