public final class MultiFields extends Fields
IndexReader implementation that consists of sequential
 sub-readers (eg DirectoryReader or MultiReader).
 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-AtomicReader,
 instead of using this class.
EMPTY_ARRAY| Constructor and Description | 
|---|
| MultiFields(Fields[] subs,
           ReaderSlice[] subSlices)Expert: construct a new MultiFields instance directly. | 
| Modifier and Type | Method and Description | 
|---|---|
| static Fields | getFields(IndexReader reader)Returns a single  Fieldsinstance for this
  reader, merging fields/terms/docs/positions on the
  fly. | 
| static Collection<String> | getIndexedFields(IndexReader reader)Call this to get the (merged) FieldInfos representing the
  set of indexed fields only for a composite reader. | 
| static Bits | getLiveDocs(IndexReader reader)Returns a single  Bitsinstance for this
  reader, merging live Documents on the
  fly. | 
| static FieldInfos | getMergedFieldInfos(IndexReader reader)Call this to get the (merged) FieldInfos for a
  composite reader. | 
| static DocsEnum | getTermDocsEnum(IndexReader r,
               Bits liveDocs,
               String field,
               BytesRef term)Returns  DocsEnumfor the specified field &
  term. | 
| static DocsEnum | getTermDocsEnum(IndexReader r,
               Bits liveDocs,
               String field,
               BytesRef term,
               int flags)Returns  DocsEnumfor the specified field &
  term, with control over whether freqs are required. | 
| static DocsAndPositionsEnum | getTermPositionsEnum(IndexReader r,
                    Bits liveDocs,
                    String field,
                    BytesRef term)Returns  DocsAndPositionsEnumfor the specified
  field & term. | 
| static DocsAndPositionsEnum | getTermPositionsEnum(IndexReader r,
                    Bits liveDocs,
                    String field,
                    BytesRef term,
                    int flags)Returns  DocsAndPositionsEnumfor the specified
  field & term, with control over whether offsets and payloads are
  required. | 
| static Terms | getTerms(IndexReader r,
        String field)This method may return null if the field does not exist. | 
| Iterator<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(String field)Get the  Termsfor this field. | 
getUniqueTermCountpublic MultiFields(Fields[] subs, ReaderSlice[] subSlices)
public static Fields getFields(IndexReader reader) throws IOException
Fields instance for this
  reader, merging fields/terms/docs/positions on the
  fly.  This method will return null if the reader 
  has no postings.
  NOTE: this is a slow way to access postings. It's better to get the sub-readers and iterate through them yourself.
IOExceptionpublic static Bits getLiveDocs(IndexReader reader)
Bits instance for this
  reader, merging live Documents on the
  fly.  This method will return null if the reader 
  has no deletions.
  NOTE: this is a very slow way to access live docs. For example, each Bits access will require a binary search. It's better to get the sub-readers and iterate through them yourself.
public static Terms getTerms(IndexReader r, String field) throws IOException
IOExceptionpublic static DocsEnum getTermDocsEnum(IndexReader r, Bits liveDocs, String field, BytesRef term) throws IOException
DocsEnum for the specified field &
  term.  This will return null if the field or term does
  not exist.IOExceptionpublic static DocsEnum getTermDocsEnum(IndexReader r, Bits liveDocs, String field, BytesRef term, int flags) throws IOException
DocsEnum for the specified field &
  term, with control over whether freqs are required.
  Some codecs may be able to optimize their
  implementation when freqs are not required.  This will
  return null if the field or term does not exist.  See TermsEnum.docs(Bits,DocsEnum,int).IOExceptionpublic static DocsAndPositionsEnum getTermPositionsEnum(IndexReader r, Bits liveDocs, String field, BytesRef term) throws IOException
DocsAndPositionsEnum for the specified
  field & term.  This will return null if the field or
  term does not exist or positions were not indexed.public static DocsAndPositionsEnum getTermPositionsEnum(IndexReader r, Bits liveDocs, String field, BytesRef term, int flags) throws IOException
DocsAndPositionsEnum for the specified
  field & term, with control over whether offsets and payloads are
  required.  Some codecs may be able to optimize
  their implementation when offsets and/or payloads are not
  required. This will return null if the field or term does not
  exist or positions were not indexed. See TermsEnum.docsAndPositions(Bits,DocsAndPositionsEnum,int).IOExceptionpublic 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 static FieldInfos getMergedFieldInfos(IndexReader reader)
  NOTE: the returned field numbers will likely not
  correspond to the actual field numbers in the underlying
  readers, and codec metadata (FieldInfo.getAttribute(String)
  will be unavailable.
public static Collection<String> getIndexedFields(IndexReader reader)
  NOTE: the returned field numbers will likely not
  correspond to the actual field numbers in the underlying
  readers, and codec metadata (FieldInfo.getAttribute(String)
  will be unavailable.
Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.