Class FieldInfo

  • public final class FieldInfo
    extends 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.
    • Field Detail

      • name

        public final String name
        Field's name
      • number

        public final int number
        Internal field number
    • Constructor Detail

      • FieldInfo

        public FieldInfo​(String name,
                         int number,
                         boolean storeTermVector,
                         boolean omitNorms,
                         boolean storePayloads,
                         IndexOptions indexOptions,
                         DocValuesType docValues,
                         long dvGen,
                         Map<String,​String> attributes,
                         int pointDataDimensionCount,
                         int pointIndexDimensionCount,
                         int pointNumBytes,
                         boolean softDeletesField)
        Sole constructor.
        WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Method Detail

      • checkConsistency

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

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

        public int getPointDataDimensionCount()
        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.
      • getDocValuesGen

        public long getDocValuesGen()
        Returns the docValues generation of this field, or -1 if no docValues updates exist for it.
      • 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 String getAttribute​(String key)
        Get a codec attribute value, or null if it does not exist
      • putAttribute

        public String putAttribute​(String key,
                                   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 Map<String,​String> attributes()
        Returns internal codec attributes map.