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()
Fieldspublic Terms terms(java.lang.String field) throws java.io.IOException
FieldsTerms for this field. This will return
null if the field does not exist.public int size()
FieldsFields.iterator() will return as many field names.