Enum Class DocumentMetadata

java.lang.Object
java.lang.Enum<DocumentMetadata>
org.springframework.ai.document.DocumentMetadata
All Implemented Interfaces:
Serializable, Comparable<DocumentMetadata>, Constable

public enum DocumentMetadata extends Enum<DocumentMetadata>
Common set of metadata keys used in Documents by DocumentReaders and VectorStores.
Since:
1.0.0
Author:
Thomas Vitale
  • Enum Constant Details

    • DISTANCE

      public static final DocumentMetadata DISTANCE
      Measure of distance between the document embedding and the query vector. The lower the distance, the more they are similar. It's the opposite of the similarity score.
    • CONTENT_REF

      public static final DocumentMetadata CONTENT_REF
      Metadata key holding a pointer to content kept outside the vector store.

      Use it when a row's embedding was computed from something that isn't stored in the row itself — an image, a video frame, an audio clip, or a document too large to inline. The vector is stored and stays searchable, but in place of the content the row keeps a reference to where the content really lives (for example an S3 URI, a CDN URL, or a database key). The store treats this reference as an opaque string and never resolves it; after a search returns the row, the application follows the pointer to fetch the content.

      Such a row is created with an empty-text Document plus this key, and written with a caller-supplied embedding through VectorStore.upsert (which stores the vector as given and never embeds). Note the empty text only exists to satisfy the document's text-or-media rule; it is not content, so a document carrying this key is a reference row even though isText() reports true.

      Nothing in the framework reads or validates this key. It is an ordinary metadata entry that the application writes and later resolves, and keeping the pointer non-empty is up to the caller. A row that still has real text of its own can be written with VectorStore.add, which is how a summary or a chunk keeps a pointer back to the full article. A row with empty text has to go through upsert, because add embeds the text and there is nothing there to embed.

      Since:
      2.1.0
  • Method Details

    • values

      public static DocumentMetadata[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static DocumentMetadata valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • value

      public String value()
    • toString

      public String toString()
      Overrides:
      toString in class Enum<DocumentMetadata>