Class OracleEmbeddingStore

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

public final class OracleEmbeddingStore extends Object implements EmbeddingStore<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.