| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.apache.lucene.index.Fields
org.apache.lucene.index.MultiFields
public final class MultiFields
Exposes flex API, merged from flex API of sub-segments.
 This is useful when you're interacting with an 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.
| Field Summary | 
|---|
| Fields inherited from class org.apache.lucene.index.Fields | 
|---|
| EMPTY_ARRAY | 
| Constructor Summary | |
|---|---|
| MultiFields(Fields[] subs,
            ReaderSlice[] subSlices)Expert: construct a new MultiFields instance directly. | |
| Method Summary | |
|---|---|
| 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. | 
| static long | totalTermFreq(IndexReader r,
              String field,
              BytesRef text)Returns the total number of occurrences of this term across all documents (the sum of the freq() for each doc that has this term). | 
| Methods inherited from class org.apache.lucene.index.Fields | 
|---|
| getUniqueTermCount | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public MultiFields(Fields[] subs,
                   ReaderSlice[] subSlices)
| Method Detail | 
|---|
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
IOException
public 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.
IOException
public 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).
IOException
public 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.
IOExceptiongetTermPositionsEnum(IndexReader, Bits, String, BytesRef, int)
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()
Fields
iterator in interface Iterable<String>iterator in class Fields
public 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.
size in class Fields
public static long totalTermFreq(IndexReader r,
                                 String field,
                                 BytesRef text)
                          throws IOException
IOExceptionTermsEnum.totalTermFreq()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.
| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||