Class CassandraEmbeddingStore

java.lang.Object
dev.langchain4j.store.embedding.cassandra.CassandraEmbeddingStore
All Implemented Interfaces:
EmbeddingStore<TextSegment>

public class CassandraEmbeddingStore extends Object implements EmbeddingStore<TextSegment>
Implementation of EmbeddingStore using Cassandra.
See Also:
  • Field Details

    • embeddingTable

      protected com.dtsx.astra.sdk.cassio.MetadataVectorTable embeddingTable
      Represents an embedding table in Cassandra, it is a table with a vector column.
    • cassandraSession

      protected com.datastax.oss.driver.api.core.CqlSession cassandraSession
      Cassandra question.
  • Constructor Details

    • CassandraEmbeddingStore

      public CassandraEmbeddingStore(com.datastax.oss.driver.api.core.CqlSession session, String tableName, int dimension)
      Embedding Store.
      Parameters:
      session - cassandra Session
      tableName - table name
      dimension - dimension
    • CassandraEmbeddingStore

      public CassandraEmbeddingStore(com.datastax.oss.driver.api.core.CqlSession session, String tableName, int dimension, com.dtsx.astra.sdk.cassio.CassandraSimilarityMetric metric)
      Embedding Store.
      Parameters:
      session - cassandra Session
      tableName - table name
      dimension - dimension
      metric - metric
  • Method Details

    • delete

      public void delete()
      Delete the table.
    • clear

      public void clear()
      Delete all rows.
    • getCassandraSession

      public com.datastax.oss.driver.api.core.CqlSession getCassandraSession()
    • builder

      public static CassandraEmbeddingStore.Builder builder()
    • builderAstra

      public static CassandraEmbeddingStore.BuilderAstra builderAstra()
    • add

      public String add(@NonNull @NonNull Embedding embedding)
      Add a new embedding to the store. - the row id is generated - text and metadata are not stored
      Specified by:
      add in interface EmbeddingStore<TextSegment>
      Parameters:
      embedding - representation of the list of floats
      Returns:
      newly created row id
    • add

      public String add(@NonNull @NonNull Embedding embedding, TextSegment textSegment)
      Add a new embedding to the store. - the row id is generated - text and metadata coming from the text Segment
      Specified by:
      add in interface EmbeddingStore<TextSegment>
      Parameters:
      embedding - representation of the list of floats
      textSegment - text content and metadata
      Returns:
      newly created row id
    • add

      public void add(@NonNull @NonNull String rowId, @NonNull @NonNull Embedding embedding)
      Add a new embedding to the store.
      Specified by:
      add in interface EmbeddingStore<TextSegment>
      Parameters:
      rowId - the row id
      embedding - representation of the list of floats
    • addAll

      public List<String> addAll(List<Embedding> embeddingList)
      Add multiple embeddings as a single action.
      Specified by:
      addAll in interface EmbeddingStore<TextSegment>
      Parameters:
      embeddingList - embeddings list
      Returns:
      list of new row if (same order as the input)
    • addAll

      public void addAll(List<String> ids, List<Embedding> embeddingList, List<TextSegment> textSegmentList)
      Description copied from interface: EmbeddingStore
      Adds multiple embeddings and their corresponding contents that have been embedded to the store.
      Specified by:
      addAll in interface EmbeddingStore<TextSegment>
      Parameters:
      ids - A list of IDs associated with the added embeddings.
      embeddingList - A list of embeddings to be added to the store.
      textSegmentList - A list of original contents that were embedded.
    • search

      Description copied from interface: EmbeddingStore
      Searches for the most similar (closest in the embedding space) Embeddings.
      All search criteria are defined inside the EmbeddingSearchRequest.
      EmbeddingSearchRequest.filter() can be used to filter by various metadata entries (e.g., user/memory ID). Please note that not all EmbeddingStore implementations support Filtering.
      Specified by:
      search in interface EmbeddingStore<TextSegment>
      Parameters:
      request - A request to search in an EmbeddingStore. Contains all search criteria.
      Returns:
      An EmbeddingSearchResult containing all found Embeddings.
    • findRelevant

      public List<EmbeddingMatch<TextSegment>> findRelevant(Embedding embedding, int maxResults, double minScore)
    • findRelevant

      public List<EmbeddingMatch<TextSegment>> findRelevant(Embedding embedding, int maxResults, double minScore, Metadata metadata)
      Similarity Search ANN based on the embedding.
      Parameters:
      embedding - vector
      maxResults - max number of results
      minScore - score minScore
      metadata - map key-value to build a metadata filter
      Returns:
      list of matching results