Class ElasticsearchEmbeddingStore

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

public class ElasticsearchEmbeddingStore extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Represents an Elasticsearch index as an embedding store.
See Also:
  • Constructor Details

    • ElasticsearchEmbeddingStore

      @Deprecated(forRemoval=true) public ElasticsearchEmbeddingStore(ElasticsearchConfiguration configuration, String serverUrl, String apiKey, String userName, String password, String indexName, Integer dimension)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates an instance of ElasticsearchEmbeddingStore.
      Parameters:
      configuration - Elasticsearch configuration to use (Knn or Script)
      serverUrl - Elasticsearch Server URL (mandatory)
      apiKey - Elasticsearch API key (optional)
      userName - Elasticsearch userName (optional)
      password - Elasticsearch password (optional)
      indexName - Elasticsearch index name (optional). Default value: "default". Index will be created automatically if not exists.
      dimension - Embedding vector dimension (mandatory when index does not exist yet).
    • ElasticsearchEmbeddingStore

      @Deprecated(forRemoval=true) public ElasticsearchEmbeddingStore(ElasticsearchConfiguration configuration, String serverUrl, String apiKey, String userName, String password, String indexName)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates an instance of ElasticsearchEmbeddingStore.
      Parameters:
      configuration - Elasticsearch configuration to use (Knn or Script)
      serverUrl - Elasticsearch Server URL (mandatory)
      apiKey - Elasticsearch API key (optional)
      userName - Elasticsearch userName (optional)
      password - Elasticsearch password (optional)
      indexName - Elasticsearch index name (optional). Default value: "default". Index will be created automatically if not exists.
    • ElasticsearchEmbeddingStore

      public ElasticsearchEmbeddingStore(ElasticsearchConfiguration configuration, org.elasticsearch.client.RestClient restClient, String indexName)
      Constructor using a RestClient
      Parameters:
      configuration - Elasticsearch configuration to use (Knn or Script)
      restClient - Elasticsearch Rest Client (mandatory)
      indexName - Elasticsearch index name (optional). Default value: "default". Index will be created automatically if not exists.
  • Method Details

    • builder

      public static ElasticsearchEmbeddingStore.Builder builder()
    • 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>
    • removeAll

      public void removeAll(Collection<String> ids)
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • removeAll

      public void removeAll(dev.langchain4j.store.embedding.filter.Filter filter)
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • removeAll

      public void removeAll()
      The Elasticsearch implementation will simply drop the index instead of removing all documents one by one.
      Specified by:
      removeAll 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> embedded)
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>