public final class MultiFields extends Fields
Fields
term index view over an
IndexReader
.
This is useful when you're interacting with an IndexReader
implementation that consists of sequential
sub-readers (eg DirectoryReader
or MultiReader
) and you must treat it as a LeafReader
.
NOTE: for composite readers, you'll get better
performance by gathering the sub readers using
IndexReader.getContext()
to get the
atomic leaves and then operate per-LeafReader,
instead of using this class.
Modifier and Type | Field and Description |
---|---|
private Fields[] |
subs |
private ReaderSlice[] |
subSlices |
private java.util.Map<java.lang.String,Terms> |
terms |
EMPTY_ARRAY
Constructor and Description |
---|
MultiFields(Fields[] subs,
ReaderSlice[] subSlices)
Sole constructor.
|
Modifier and Type | Method and Description |
---|---|
java.util.Iterator<java.lang.String> |
iterator()
Returns an iterator that will step through all fields
names.
|
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 the
Terms for this field. |
private final Fields[] subs
private final ReaderSlice[] subSlices
private final java.util.Map<java.lang.String,Terms> terms
public MultiFields(Fields[] subs, ReaderSlice[] subSlices)
public java.util.Iterator<java.lang.String> iterator()
Fields
public Terms terms(java.lang.String field) throws java.io.IOException
Fields
Terms
for this field. This will return
null if the field does not exist.public int size()
Fields
Fields.iterator()
will return as many field names.