Class FieldInfo

java.lang.Object
org.apache.lucene.index.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 Details

    • name

      public final String name
      Field's name
    • number

      public final int number
      Internal field number
    • docValuesType

      private DocValuesType docValuesType
    • docValuesSkipIndex

      private final DocValuesSkipIndexType docValuesSkipIndex
    • storeTermVector

      private boolean storeTermVector
    • omitNorms

      private boolean omitNorms
    • indexOptions

      private final IndexOptions indexOptions
    • storePayloads

      private boolean storePayloads
    • attributes

      private Map<String,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
    • vectorDimension

      private final int vectorDimension
    • vectorEncoding

      private final VectorEncoding vectorEncoding
    • vectorSimilarityFunction

      private final VectorSimilarityFunction vectorSimilarityFunction
    • softDeletesField

      private final boolean softDeletesField
    • isParentField

      private final boolean isParentField
  • Constructor Details

  • Method Details

    • checkConsistency

      public void checkConsistency()
      Check correctness of the FieldInfo options
      Throws:
      IllegalArgumentException - if some options are incorrect
    • verifySameSchema

      void verifySameSchema(FieldInfo o)
      Verify that the provided FieldInfo has the same schema as this FieldInfo
      Parameters:
      o - – other FieldInfo whose schema is verified against this FieldInfo's schema
      Throws:
      IllegalArgumentException - if the field schemas are not the same
    • verifySameIndexOptions

      static void verifySameIndexOptions(String fieldName, IndexOptions indexOptions1, IndexOptions indexOptions2)
      Verify that the provided index options are the same
      Throws:
      IllegalArgumentException - if they are not the same
    • verifySameDocValuesType

      static void verifySameDocValuesType(String fieldName, DocValuesType docValuesType1, DocValuesType docValuesType2)
      Verify that the provided docValues type are the same
      Throws:
      IllegalArgumentException - if they are not the same
    • verifySameDocValuesSkipIndex

      static void verifySameDocValuesSkipIndex(String fieldName, DocValuesSkipIndexType hasDocValuesSkipIndex1, DocValuesSkipIndexType hasDocValuesSkipIndex2)
      Verify that the provided docValues type are the same
      Throws:
      IllegalArgumentException - if they are not the same
    • verifySameStoreTermVectors

      static void verifySameStoreTermVectors(String fieldName, boolean storeTermVector1, boolean storeTermVector2)
      Verify that the provided store term vectors options are the same
      Throws:
      IllegalArgumentException - if they are not the same
    • verifySameOmitNorms

      static void verifySameOmitNorms(String fieldName, boolean omitNorms1, boolean omitNorms2)
      Verify that the provided omitNorms are the same
      Throws:
      IllegalArgumentException - if they are not the same
    • verifySamePointsOptions

      static void verifySamePointsOptions(String fieldName, int pointDimensionCount1, int indexDimensionCount1, int numBytes1, int pointDimensionCount2, int indexDimensionCount2, int numBytes2)
      Verify that the provided points indexing options are the same
      Throws:
      IllegalArgumentException - if they are not the same
    • verifySameVectorOptions

      static void verifySameVectorOptions(String fieldName, int vd1, VectorEncoding ve1, VectorSimilarityFunction vsf1, int vd2, VectorEncoding ve2, VectorSimilarityFunction vsf2)
      Verify that the provided vector indexing options are the same
      Throws:
      IllegalArgumentException - if they are not the same
    • 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
    • getVectorDimension

      public int getVectorDimension()
      Returns the number of dimensions of the vector value
    • getVectorEncoding

      public VectorEncoding getVectorEncoding()
      Returns the number of dimensions of the vector value
    • getVectorSimilarityFunction

      public VectorSimilarityFunction getVectorSimilarityFunction()
      Returns VectorSimilarityFunction for the field
    • 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
    • getName

      public String getName()
      Returns name of this field
      Returns:
      name
    • getFieldNumber

      public int getFieldNumber()
      Returns the field number
      Returns:
      field number
    • getDocValuesType

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

      public DocValuesSkipIndexType docValuesSkipIndexType()
      Returns true if, and only if, this field has a skip index.
    • 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.
    • hasTermVectors

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

      public boolean hasVectorValues()
      Returns whether any (numeric) vector values 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.
    • isSoftDeletesField

      public boolean isSoftDeletesField()
      Returns true if this field is configured and used as the soft-deletes field. See LiveIndexWriterConfig.softDeletesField
    • isParentField

      public boolean isParentField()
      Returns true if this field is configured and used as the parent document field field. See IndexWriterConfig.setParentField(String)