Class PgVectorStore

java.lang.Object
org.springframework.ai.vectorstore.PgVectorStore
All Implemented Interfaces:
Consumer<List<Document>>, DocumentWriter, VectorStore, org.springframework.beans.factory.InitializingBean

public class PgVectorStore extends Object implements VectorStore, org.springframework.beans.factory.InitializingBean
Uses the "vector_store" table to store the Spring AI vector data. The table and the vector index will be auto-created if not available.
Author:
Christian Tzolov
  • Field Details

  • Constructor Details

    • PgVectorStore

      public PgVectorStore(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient)
    • PgVectorStore

      public PgVectorStore(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient, int dimensions)
    • PgVectorStore

      public PgVectorStore(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient, int dimensions, PgVectorStore.PgDistanceType distanceType, boolean removeExistingVectorStoreTable, PgVectorStore.PgIndexType createIndexMethod)
  • Method Details

    • getDistanceType

      public PgVectorStore.PgDistanceType getDistanceType()
    • add

      public void add(List<Document> documents)
      Description copied from interface: VectorStore
      Adds list of Documents to the vector store.
      Specified by:
      add in interface VectorStore
      Parameters:
      documents - the list of documents to store. Throws an exception if the underlying provider checks for duplicate IDs.
    • delete

      public Optional<Boolean> delete(List<String> idList)
      Description copied from interface: VectorStore
      Deletes documents from the vector store.
      Specified by:
      delete in interface VectorStore
      Parameters:
      idList - list of document ids for which documents will be removed.
      Returns:
    • similaritySearch

      public List<Document> similaritySearch(SearchRequest request)
      Description copied from interface: VectorStore
      Retrieves documents by query embedding similarity and metadata filters to retrieve exactly the number of nearest-neighbor results that match the request criteria.
      Specified by:
      similaritySearch in interface VectorStore
      Parameters:
      request - Search request for set search parameters, such as the query text, topK, similarity threshold and metadata filter expressions.
      Returns:
      Returns documents th match the query request conditions.
    • embeddingDistance

      public List<Double> embeddingDistance(String query)
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception