Class MilvusEmbeddingStore

java.lang.Object
dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore
All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>

public class MilvusEmbeddingStore extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Represents an Milvus index as an embedding store.
Supports both local and managed Milvus instances.
Supports storing Metadata and filtering by it using a Filter (provided inside an EmbeddingSearchRequest).
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    MilvusEmbeddingStore(io.milvus.client.MilvusServiceClient milvusClient, String collectionName, Integer dimension, io.milvus.param.IndexType indexType, io.milvus.param.MetricType metricType, io.milvus.common.clientenum.ConsistencyLevelEnum consistencyLevel, Boolean retrieveEmbeddingsOnSearch, Boolean autoFlushOnInsert, String idFieldName, String textFieldName, String metadataFiledName, String vectorFiledName)
     
    MilvusEmbeddingStore(String host, Integer port, String collectionName, Integer dimension, io.milvus.param.IndexType indexType, io.milvus.param.MetricType metricType, String uri, String token, String username, String password, io.milvus.common.clientenum.ConsistencyLevelEnum consistencyLevel, Boolean retrieveEmbeddingsOnSearch, Boolean autoFlushOnInsert, String databaseName, String idFieldName, String textFieldName, String metadataFiledName, String vectorFiledName)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    add(dev.langchain4j.data.embedding.Embedding embedding)
     
    add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment)
     
    void
    add(String id, dev.langchain4j.data.embedding.Embedding embedding)
     
    addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings)
     
    void
    addAll(List<String> ids, List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> textSegments)
     
     
    void
    dropCollection(String collectionName)
     
    void
    Removes all embeddings from the store.
    void
    removeAll(dev.langchain4j.store.embedding.filter.Filter filter)
    Removes all embeddings that match the specified Filter from the store.
    void
    Removes a single embedding from the store by ID.
    dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment>
    search(dev.langchain4j.store.embedding.EmbeddingSearchRequest embeddingSearchRequest)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface dev.langchain4j.store.embedding.EmbeddingStore

    addAll, generateIds, remove
  • Constructor Details

    • MilvusEmbeddingStore

      public MilvusEmbeddingStore(String host, Integer port, String collectionName, Integer dimension, io.milvus.param.IndexType indexType, io.milvus.param.MetricType metricType, String uri, String token, String username, String password, io.milvus.common.clientenum.ConsistencyLevelEnum consistencyLevel, Boolean retrieveEmbeddingsOnSearch, Boolean autoFlushOnInsert, String databaseName, String idFieldName, String textFieldName, String metadataFiledName, String vectorFiledName)
    • MilvusEmbeddingStore

      public MilvusEmbeddingStore(io.milvus.client.MilvusServiceClient milvusClient, String collectionName, Integer dimension, io.milvus.param.IndexType indexType, io.milvus.param.MetricType metricType, io.milvus.common.clientenum.ConsistencyLevelEnum consistencyLevel, Boolean retrieveEmbeddingsOnSearch, Boolean autoFlushOnInsert, String idFieldName, String textFieldName, String metadataFiledName, String vectorFiledName)
  • Method Details

    • builder

      public static MilvusEmbeddingStore.Builder builder()
    • dropCollection

      public void dropCollection(String collectionName)
    • add

      public String add(dev.langchain4j.data.embedding.Embedding embedding)
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • add

      public void add(String id, dev.langchain4j.data.embedding.Embedding embedding)
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • add

      public String add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment)
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • addAll

      public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings)
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • search

      public dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment> search(dev.langchain4j.store.embedding.EmbeddingSearchRequest embeddingSearchRequest)
      Specified by:
      search in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • addAll

      public void addAll(List<String> ids, List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> textSegments)
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • removeAll

      public void removeAll(Collection<String> ids)
      Removes a single embedding from the store by ID.

      CAUTION

      • Deleted entities can still be retrieved immediately after the deletion if the consistency level is set lower than Strong
      • Entities deleted beyond the pre-specified span of time for Time Travel cannot be retrieved again.
      • Frequent deletion operations will impact the system performance.
      • Before deleting entities by comlpex boolean expressions, make sure the collection has been loaded.
      • Deleting entities by complex boolean expressions is not an atomic operation. Therefore, if it fails halfway through, some data may still be deleted.
      • Deleting entities by complex boolean expressions is supported only when the consistency is set to Bounded. For details, see Consistency
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
      Parameters:
      ids - A collection of unique IDs of the embeddings to be removed.
      Since:
      Milvus version 2.3.x
    • removeAll

      public void removeAll(dev.langchain4j.store.embedding.filter.Filter filter)
      Removes all embeddings that match the specified Filter from the store.

      CAUTION

      • Deleted entities can still be retrieved immediately after the deletion if the consistency level is set lower than Strong
      • Entities deleted beyond the pre-specified span of time for Time Travel cannot be retrieved again.
      • Frequent deletion operations will impact the system performance.
      • Before deleting entities by comlpex boolean expressions, make sure the collection has been loaded.
      • Deleting entities by complex boolean expressions is not an atomic operation. Therefore, if it fails halfway through, some data may still be deleted.
      • Deleting entities by complex boolean expressions is supported only when the consistency is set to Bounded. For details, see Consistency
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
      Parameters:
      filter - The filter to be applied to the Metadata of the TextSegment during removal. Only embeddings whose TextSegment's Metadata match the Filter will be removed.
      Since:
      Milvus version 2.3.x
    • removeAll

      public void removeAll()
      Removes all embeddings from the store.

      CAUTION

      • Deleted entities can still be retrieved immediately after the deletion if the consistency level is set lower than Strong
      • Entities deleted beyond the pre-specified span of time for Time Travel cannot be retrieved again.
      • Frequent deletion operations will impact the system performance.
      • Before deleting entities by comlpex boolean expressions, make sure the collection has been loaded.
      • Deleting entities by complex boolean expressions is not an atomic operation. Therefore, if it fails halfway through, some data may still be deleted.
      • Deleting entities by complex boolean expressions is supported only when the consistency is set to Bounded. For details, see Consistency
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
      Since:
      Milvus version 2.3.x