org.apache.lucene.index

## Class StoredFieldVisitor

- java.lang.Object
- - org.apache.lucene.index.StoredFieldVisitor

- Direct Known Subclasses:
    DocumentStoredFieldVisitor, StoredFieldsWriter.MergeVisitor

      public abstract class StoredFieldVisitor
      extends Object

  Expert: provides a low-level means of accessing the stored field values in an index. See `IndexReader.document(int, StoredFieldVisitor)`.

  NOTE: a `StoredFieldVisitor` implementation should not try to load or visit other stored documents in the same reader because the implementation of stored fields for most codecs is not reentrant and you will see strange exceptions as a result.

  See `DocumentStoredFieldVisitor`, which is a `StoredFieldVisitor` that builds the `Document` containing all stored fields. This is used by `IndexReader.document(int)`.

  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `StoredFieldVisitor.Status` Enumeration of possible return values for `needsField(org.apache.lucene.index.FieldInfo)`.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `StoredFieldVisitor()` Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `binaryField(FieldInfo fieldInfo, byte[] value)` Process a binary field.
    `void` | `doubleField(FieldInfo fieldInfo, double value)` Process a double numeric field.
    `void` | `floatField(FieldInfo fieldInfo, float value)` Process a float numeric field.
    `void` | `intField(FieldInfo fieldInfo, int value)` Process a int numeric field.
    `void` | `longField(FieldInfo fieldInfo, long value)` Process a long numeric field.
    `abstract StoredFieldVisitor.Status` | `needsField(FieldInfo fieldInfo)` Hook before processing a field.
    `void` | `stringField(FieldInfo fieldInfo, byte[] value)` Process a string field; the provided byte[] value is a UTF-8 encoded string value.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StoredFieldVisitor

          protected StoredFieldVisitor()

      Sole constructor. (For invocation by subclass constructors, typically implicit.)

  - ### Method Detail

    - #### binaryField

          public void binaryField(FieldInfo fieldInfo,
                                  byte[] value)
                           throws IOException

      Process a binary field.
      Parameters:
        `value` - newly allocated byte array with the binary contents.
      Throws:
        `IOException`

    - #### stringField

          public void stringField(FieldInfo fieldInfo,
                                  byte[] value)
                           throws IOException

      Process a string field; the provided byte[] value is a UTF-8 encoded string value.
      Throws:
        `IOException`

    - #### intField

          public void intField(FieldInfo fieldInfo,
                               int value)
                        throws IOException

      Process a int numeric field.
      Throws:
        `IOException`

    - #### longField

          public void longField(FieldInfo fieldInfo,
                                long value)
                         throws IOException

      Process a long numeric field.
      Throws:
        `IOException`

    - #### floatField

          public void floatField(FieldInfo fieldInfo,
                                 float value)
                          throws IOException

      Process a float numeric field.
      Throws:
        `IOException`

    - #### doubleField

          public void doubleField(FieldInfo fieldInfo,
                                  double value)
                           throws IOException

      Process a double numeric field.
      Throws:
        `IOException`

    - #### needsField

          public abstract StoredFieldVisitor.Status needsField(FieldInfo fieldInfo)
                                                        throws IOException

      Hook before processing a field. Before a field is processed, this method is invoked so that subclasses can return a `StoredFieldVisitor.Status` representing whether they need that particular field or not, or to stop processing entirely.
      Throws:
        `IOException`

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.