Class FieldInfo


  • public final class FieldInfo
    extends java.lang.Object
    Access to the Field Info file that describes document fields and whether or not they are indexed. Each segment has a separate Field Info file. Objects of this class are thread-safe for multiple readers, but only one thread can be adding documents at a time, with no other reader or writer threads accessing this object.
    • Constructor Summary

      Constructors 
      Constructor Description
      FieldInfo​(java.lang.String name, int number, boolean storeTermVector, boolean omitNorms, boolean storePayloads, IndexOptions indexOptions, DocValuesType docValues, long dvGen, java.util.Map<java.lang.String,​java.lang.String> attributes, int pointDimensionCount, int pointIndexDimensionCount, int pointNumBytes, boolean softDeletesField)
      Sole constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Map<java.lang.String,​java.lang.String> attributes()
      Returns internal codec attributes map.
      boolean checkConsistency()
      Performs internal consistency checks.
      java.lang.String getAttribute​(java.lang.String key)
      Get a codec attribute value, or null if it does not exist
      long getDocValuesGen()
      Returns the docValues generation of this field, or -1 if no docValues updates exist for it.
      DocValuesType getDocValuesType()
      Returns DocValuesType of the docValues; this is DocValuesType.NONE if the field has no docvalues.
      IndexOptions getIndexOptions()
      Returns IndexOptions for the field, or IndexOptions.NONE if the field is not indexed
      int getPointDimensionCount()
      Return point data dimension count
      int getPointIndexDimensionCount()
      Return point data dimension count
      int getPointNumBytes()
      Return number of bytes per dimension
      boolean hasNorms()
      Returns true if this field actually has any norms.
      boolean hasPayloads()
      Returns true if any payloads exist for this field.
      boolean hasVectors()
      Returns true if any term vectors exist for this field.
      boolean isSoftDeletesField()
      Returns true if this field is configured and used as the soft-deletes field.
      boolean omitsNorms()
      Returns true if norms are explicitly omitted for this field
      java.lang.String putAttribute​(java.lang.String key, java.lang.String value)
      Puts a codec attribute value.
      (package private) void setDocValuesGen​(long dvGen)
      Sets the docValues generation of this field.
      void setDocValuesType​(DocValuesType type)
      Record that this field is indexed with docvalues, with the specified type
      void setIndexOptions​(IndexOptions newIndexOptions)
      Record the IndexOptions to use with this field.
      void setOmitsNorms()
      Omit norms for this field.
      void setPointDimensions​(int dimensionCount, int indexDimensionCount, int numBytes)
      Record that this field is indexed with points, with the specified number of dimensions and bytes per dimension.
      (package private) void setStorePayloads()  
      (package private) void setStoreTermVectors()  
      (package private) void update​(boolean storeTermVector, boolean omitNorms, boolean storePayloads, IndexOptions indexOptions, java.util.Map<java.lang.String,​java.lang.String> attributes, int dimensionCount, int indexDimensionCount, int dimensionNumBytes)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • name

        public final java.lang.String name
        Field's name
      • number

        public final int number
        Internal field number
      • storeTermVector

        private boolean storeTermVector
      • omitNorms

        private boolean omitNorms
      • storePayloads

        private boolean storePayloads
      • attributes

        private final java.util.Map<java.lang.String,​java.lang.String> attributes
      • dvGen

        private long dvGen
      • pointDimensionCount

        private int pointDimensionCount
        If both of these are positive it means this field indexed points (see PointsFormat).
      • pointIndexDimensionCount

        private int pointIndexDimensionCount
      • pointNumBytes

        private int pointNumBytes
      • softDeletesField

        private final boolean softDeletesField
    • Constructor Detail

      • FieldInfo

        public FieldInfo​(java.lang.String name,
                         int number,
                         boolean storeTermVector,
                         boolean omitNorms,
                         boolean storePayloads,
                         IndexOptions indexOptions,
                         DocValuesType docValues,
                         long dvGen,
                         java.util.Map<java.lang.String,​java.lang.String> attributes,
                         int pointDimensionCount,
                         int pointIndexDimensionCount,
                         int pointNumBytes,
                         boolean softDeletesField)
        Sole constructor.
    • Method Detail

      • checkConsistency

        public boolean checkConsistency()
        Performs internal consistency checks. Always returns true (or throws IllegalStateException)
      • update

        void update​(boolean storeTermVector,
                    boolean omitNorms,
                    boolean storePayloads,
                    IndexOptions indexOptions,
                    java.util.Map<java.lang.String,​java.lang.String> attributes,
                    int dimensionCount,
                    int indexDimensionCount,
                    int dimensionNumBytes)
      • setPointDimensions

        public void setPointDimensions​(int dimensionCount,
                                       int indexDimensionCount,
                                       int numBytes)
        Record that this field is indexed with points, with the specified number of dimensions and bytes per dimension.
      • getPointDimensionCount

        public int getPointDimensionCount()
        Return point data dimension count
      • getPointIndexDimensionCount

        public int getPointIndexDimensionCount()
        Return point data dimension count
      • getPointNumBytes

        public int getPointNumBytes()
        Return number of bytes per dimension
      • setDocValuesType

        public void setDocValuesType​(DocValuesType type)
        Record that this field is indexed with docvalues, with the specified type
      • getIndexOptions

        public IndexOptions getIndexOptions()
        Returns IndexOptions for the field, or IndexOptions.NONE if the field is not indexed
      • setIndexOptions

        public void setIndexOptions​(IndexOptions newIndexOptions)
        Record the IndexOptions to use with this field.
      • getDocValuesType

        public DocValuesType getDocValuesType()
        Returns DocValuesType of the docValues; this is DocValuesType.NONE if the field has no docvalues.
      • setDocValuesGen

        void setDocValuesGen​(long dvGen)
        Sets the docValues generation of this field.
      • getDocValuesGen

        public long getDocValuesGen()
        Returns the docValues generation of this field, or -1 if no docValues updates exist for it.
      • setStoreTermVectors

        void setStoreTermVectors()
      • setStorePayloads

        void setStorePayloads()
      • omitsNorms

        public boolean omitsNorms()
        Returns true if norms are explicitly omitted for this field
      • setOmitsNorms

        public void setOmitsNorms()
        Omit norms for this field.
      • hasNorms

        public boolean hasNorms()
        Returns true if this field actually has any norms.
      • hasPayloads

        public boolean hasPayloads()
        Returns true if any payloads exist for this field.
      • hasVectors

        public boolean hasVectors()
        Returns true if any term vectors exist for this field.
      • getAttribute

        public java.lang.String getAttribute​(java.lang.String key)
        Get a codec attribute value, or null if it does not exist
      • putAttribute

        public java.lang.String putAttribute​(java.lang.String key,
                                             java.lang.String value)
        Puts a codec attribute value.

        This is a key-value mapping for the field that the codec can use to store additional metadata, and will be available to the codec when reading the segment via getAttribute(String)

        If a value already exists for the key in the field, it will be replaced with the new value. If the value of the attributes for a same field is changed between the documents, the behaviour after merge is undefined.

      • attributes

        public java.util.Map<java.lang.String,​java.lang.String> attributes()
        Returns internal codec attributes map.