主题
ClickHouse
ClickHouse 是最快且最节省资源的开源 数据库,面向实时应用与分析,支持完整的 SQL,并提供范围广泛的函数 以帮助用户编写分析型查询。近期新增的数据结构与距离搜索 函数(如 cosineDistance)以及 近似最近邻搜索索引, 使 ClickHouse 可作为高性能、可扩展的向量数据库,用 SQL 存储和检索向量。
Maven 依赖
xml
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-clickhouse</artifactId>
<version>${latest version here}</version>
</dependency>1
2
3
4
5
6
2
3
4
5
6
API
LangChain4j 使用 client-v2 作为 ClickHouse 客户端。要创建 ClickHouseEmbeddingStore 实例,你需要提供一个 ClickHouseSettings:
java
// Mapping metadata key to ClickHouse data type.
Map<String, ClickHouseDataType> metadataTypeMap = new HashMap<>();
ClickHouseSettings settings = ClickHouseSettings.builder()
.url("http://localhost:8123")
.table("langchain4j_table")
.username(System.getenv("USERNAME"))
.password(System.getenv("PASSWORD"))
.dimension(embeddingModel.dimension())
.metadataTypeMap(metadataTypeMap)
.build();1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
然后即可创建嵌入存储:
java
ClickHouseEmbeddingStore embeddingStore = ClickHouseEmbeddingStore.builder()
.settings(settings)
.build();1
2
3
2
3