Class OracleEmbeddingStore

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

public final class OracleEmbeddingStore extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>

An EmbeddingStore which uses AI Vector Search capabilities of Oracle Database. This embedding store supports metadata filtering and removal

Instances of this store are created by configuring a builder:


 EmbeddingStore<TextSegment> example(DataSource dataSource) {
   return OracleEmbeddingStore.builder()
     .dataSource(dataSource)
     .embeddingTable("example")
     .build();
 }
 

It is recommended to configure a DataSource which pools connections, such as the Universal Connection Pool (UCP) or Hikari. A connection pool will avoid the latency of repeatedly creating new database connections.

This embedding store requires a EmbeddingTable to be configured with OracleEmbeddingStore.Builder.embeddingTable(String). If the table does not already exist, it can be created by passing a CreateOption to OracleEmbeddingStore.Builder.embeddingTable(String, CreateOption) or to EmbeddingTable.Builder.createOption(CreateOption).

An inverted flat file (IVF) vector index is created on the embedding column. The index is named "{tableName}_EMBEDDING_INDEX", where {tableName} is the name configured using the OracleEmbeddingStore.Builder.

Instances of this embedding store are safe for use by multiple threads.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Builder which configures and creates instances of OracleEmbeddingStore.
  • 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)
     
    addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded)
     
    Returns a builder which configures and creates instances of OracleEmbeddingStore.
    void
     
    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 request)
     

    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

    findRelevant, findRelevant, findRelevant, findRelevant, remove
  • Method Details

    • 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>
    • 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>
    • 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, List<dev.langchain4j.data.segment.TextSegment> embedded)
      Specified by:
      addAll 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>
    • 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()
      Specified by:
      removeAll 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 request)
      Specified by:
      search in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • builder

      public static OracleEmbeddingStore.Builder builder()
      Returns a builder which configures and creates instances of OracleEmbeddingStore.
      Returns:
      A builder. Not null.