Skip to content
LangChain4j 文档版本 1.22.0 源快照 ebd38986 更新于 2026-10-14

Weaviate

https://weaviate.io/

Maven 依赖

xml

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-weaviate</artifactId>
    <version>1.22.0-beta32</version>
</dependency>

API

  • WeaviateEmbeddingStore

用量

参数描述必填/可选
apiKey你的 Weaviate API 密钥。本地部署时无需填写。可选
scheme集群 URL 的协议,例如 "https"。可在 Weaviate 集群的 Details 下找到。必填
host集群 URL 的主机名,例如 "langchain4j-4jw7ufd9.weaviate.network"。可在 Weaviate 集群的 Details 下找到。必填
port端口,例如 8080。可选
objectClass你想存储的对象类,例如 "MyGreatClass"。必须以大写字母开头。可选(默认:Default)
avoidDups若为 true(默认),则 WeaviateEmbeddingStore 会基于所提供的文本片段生成一个哈希 ID,从而避免数据库中重复的条目。若为 false,则生成随机 ID。可选(默认:true)
consistencyLevel一致性级别:ONE、QUORUM(默认)或 ALL。更多细节见这里。可选(默认:QUORUM)
useGrpcForInserts仅对批量插入使用 GRPC 而非 HTTP。检索仍需配置 HTTP。可选
securedGrpcGRPC 连接是加密的。可选
grpcPort端口,例如 50051。可选
textFieldName存放 TextSegment 文本的字段名。可选(默认:text)
metadataFieldName存放 Metadata 条目的字段名。若设为空字符串(""),Metadata 条目会存储在根对象中。使用根对象时建议配合 metadataKeys。可选(默认:_metadata)
metadataKeys需要持久化的元数据键。可选

Weaviate 1.39 及更新版本

自 1.39 版本起,Weaviate 在自动创建集合时,会将对象的嵌入存储在一个具名向量 (名为 default)中。较旧版本的 Weaviate 则使用单个未命名向量。

langchain4j-weaviate 1.22.0-beta32 及更早版本只读取单个未命名向量。 当这样的版本搭配由 Weaviate 1.39 或更新版本创建的集合时, 每个搜索结果的 EmbeddingMatch.embedding() 都为空。分数、ID、 TextSegment 及其 Metadata 仍能正确返回,因此仅当你的应用 使用匹配结果的嵌入时才与此相关。

该问题在 1.22.0-beta32 中已修复,它同时读取两种布局:由更早版本存储的嵌入 也能被返回,无需任何更改。

在 1.22.0-beta32 及更早版本下,请在 使用 WeaviateEmbeddingStore 之前自行创建集合,并将其配置为不使用具名向量:

java
WeaviateClient client = new WeaviateClient(new Config("https", "my-cluster.weaviate.network"));

client.schema().classCreator()
        .withClass(WeaviateClass.builder()
                .className("MyGreatClass")
                .vectorizer("none")
                .build())
        .run();

同样的操作也可以通过一个普通的 HTTP 请求完成:

shell
curl -X POST https://my-cluster.weaviate.network/v1/schema \
  -H 'Content-Type: application/json' \
  -d '{"class": "MyGreatClass", "vectorizer": "none"}'

由 Weaviate 1.38 或更旧版本创建的集合不受影响。

示例

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。