Class ClickHouseEmbeddingStore
java.lang.Object
dev.langchain4j.community.store.embedding.clickhouse.ClickHouseEmbeddingStore
- All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>,AutoCloseable
public class ClickHouseEmbeddingStore
extends Object
implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>, AutoCloseable
An EmbeddingStore which uses AI Vector Search capabilities of ClickHouse Database. This embedding store
supports metadata filtering and removal
Instances of this store are created by configuring a builder:
EmbeddingStore<TextSegment> example() {
return ClickHouseEmbeddingStore.builder()
.settings(ClickHouseSettings.builder()
.url("http://localhost:8123")
.dimension(embeddingModel.dimension())
.build();)
.build();
}
It is recommended to configure a ClickHouseClient in order to customize your connection or authorization.
This embedding store requires a ClickHouseSettings to be configured
NOTE: Since clickhouse-server version 25.4.1.2934, the 'vector_similarity' index has some breaking change in parameters. If you encounter some problem like 'DB::Exception: Vector similarity index must have three or six arguments. (INCORRECT_QUERY)', please upgrade the version of clickhouse-server to the latest version.
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionClickHouseEmbeddingStore(com.clickhouse.client.api.Client client, ClickHouseSettings settings) Construct embedding store. -
Method Summary
Modifier and TypeMethodDescriptionadd(dev.langchain4j.data.embedding.Embedding embedding) add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment) voidaddAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded) voidaddAll(List<String> ids, List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded) builder()voidclose()com.clickhouse.client.api.ClientvoidvoidremoveAll(dev.langchain4j.store.embedding.filter.Filter filter) voidremoveAll(Collection<String> ids) 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, waitMethods inherited from interface dev.langchain4j.store.embedding.EmbeddingStore
generateIds, remove
-
Constructor Details
-
ClickHouseEmbeddingStore
public ClickHouseEmbeddingStore(com.clickhouse.client.api.Client client, ClickHouseSettings settings) Construct embedding store.- Parameters:
client- Custom ClickHouse client. (Optional)settings- ClickHouse settings.- See Also:
-
-
Method Details
-
builder
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-
add
- Specified by:
addin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
add
- Specified by:
addin interfacedev.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:
addin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
addAll
- Specified by:
addAllin interfacedev.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:
addAllin interfacedev.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:
searchin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
removeAll
- Specified by:
removeAllin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
removeAll
public void removeAll(dev.langchain4j.store.embedding.filter.Filter filter) - Specified by:
removeAllin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
removeAll
public void removeAll()- Specified by:
removeAllin interfacedev.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:
addAllin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
getSettings
-
getClient
public com.clickhouse.client.api.Client getClient()
-