Class AbstractElasticsearchEmbeddingStore

java.lang.Object
dev.langchain4j.store.embedding.elasticsearch.AbstractElasticsearchEmbeddingStore
All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Direct Known Subclasses:
ElasticsearchContentRetriever, ElasticsearchEmbeddingStore

public abstract class AbstractElasticsearchEmbeddingStore extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Represents an Elasticsearch index as an embedding store.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected co.elastic.clients.elasticsearch.ElasticsearchClient
     
     
    protected String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • 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)
     
    add(String text)
     
    void
    add(String id, dev.langchain4j.data.embedding.Embedding embedding)
     
    void
    add(String id, String text)
     
    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> embedded)
     
     
    List<dev.langchain4j.data.segment.TextSegment>
     
    dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment>
    hybridSearch(dev.langchain4j.store.embedding.EmbeddingSearchRequest embeddingSearchRequest, String textQuery)
     
    protected void
    initialize(ElasticsearchConfiguration configuration, org.elasticsearch.client.RestClient restClient, String indexName)
    Initialize using a RestClient
    void
    The Elasticsearch implementation will simply drop the index instead of removing all documents one by one.
    void
    removeAll(dev.langchain4j.store.embedding.filter.Filter filter)
     
    void
     
    dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment>
    search(dev.langchain4j.store.embedding.EmbeddingSearchRequest embeddingSearchRequest)
     

    Methods inherited from class Object

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

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

    addAll, addListener, addListeners, generateIds, remove
  • Field Details

    • configuration

      protected ElasticsearchConfiguration configuration
    • client

      protected co.elastic.clients.elasticsearch.ElasticsearchClient client
    • indexName

      protected String indexName
  • Constructor Details

    • AbstractElasticsearchEmbeddingStore

      public AbstractElasticsearchEmbeddingStore()
  • Method Details

    • initialize

      protected void initialize(ElasticsearchConfiguration configuration, org.elasticsearch.client.RestClient restClient, String indexName)
      Initialize 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.
    • 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(String text)
    • add

      public void add(String id, String text)
    • addAllText

      public List<String> addAllText(List<String> texts)
    • 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>
    • hybridSearch

      public dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment> hybridSearch(dev.langchain4j.store.embedding.EmbeddingSearchRequest embeddingSearchRequest, String textQuery)
    • fullTextSearch

      public List<dev.langchain4j.data.segment.TextSegment> fullTextSearch(String textQuery)
    • 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>