Class StoredFields

java.lang.Object
org.apache.lucene.index.StoredFields
Direct Known Subclasses:
StoredFieldsReader

public abstract class StoredFields extends Object
API for reading stored fields.

NOTE: This class is not thread-safe and should only be consumed in the thread where it was acquired.

  • Constructor Details

    • StoredFields

      protected StoredFields()
      Sole constructor. (For invocation by subclass constructors, typically implicit.)
  • Method Details

    • prefetch

      public void prefetch(int docID) throws IOException
      Optional method: Give a hint to this StoredFields instance that the given document will be read in the near future. This typically delegates to IndexInput.prefetch(long, long) and is useful to parallelize I/O across multiple documents.

      NOTE: This API is expected to be called on a small enough set of doc IDs that they could all fit in the page cache. If you plan on retrieving a very large number of documents, it may be a good idea to perform calls to prefetch(int) and document(int) in batches instead of prefetching all documents up-front.

      Throws:
      IOException
    • document

      public final Document document(int docID) throws IOException
      Returns the stored fields of the nth Document in this index. This is just sugar for using DocumentStoredFieldVisitor.

      NOTE: for performance reasons, this method does not check if the requested document is deleted, and therefore asking for a deleted document may yield unspecified results. Usually this is not required, however you can test if the doc is deleted by checking the Bits returned from MultiBits.getLiveDocs(org.apache.lucene.index.IndexReader).

      NOTE: only the content of a field is returned, if that field was stored during indexing. Metadata like boost, omitNorm, IndexOptions, tokenized, etc., are not preserved.

      Throws:
      CorruptIndexException - if the index is corrupt
      IOException - if there is a low-level IO error
    • document

      public abstract void document(int docID, StoredFieldVisitor visitor) throws IOException
      Expert: visits the fields of a stored document, for custom processing/loading of each field. If you simply want to load all fields, use document(int). If you want to load a subset, use DocumentStoredFieldVisitor.
      Throws:
      IOException
    • document

      public final Document document(int docID, Set<String> fieldsToLoad) throws IOException
      Like document(int) but only loads the specified fields. Note that this is simply sugar for DocumentStoredFieldVisitor(Set).
      Throws:
      IOException