You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weaviate查询技术问询:默认查询属性及指定nearText查询字段方法

Weaviate nearText 查询的属性匹配逻辑

默认匹配规则

Weaviate的向量搜索(比如nearText)和你查询时指定返回的属性无关——你代码里get("Question", ["question", "answer", "category"])只是定义要返回哪些字段,不是搜索的依据。

实际搜索基于类(比如Question)的向量来源配置:

  • 如果类定义时没有指定特定属性做向量化,默认会把所有可向量化的属性(比如text类型)内容拼接,生成一个全局向量,查询时就基于这个合并向量匹配。
  • 如果类里给某些属性单独配置了向量存储,就可以针对性地用这些属性的向量搜索。

你的示例分析

你提供的代码中,nearText的匹配依据是Question类的向量配置。如果这个类是默认创建的,那它的向量是由question、answer、category三个属性的内容合并生成的,所以此时nearText确实是基于这三个属性的合并内容来搜索的。

如何指定单个属性查询

完全可以仅在question属性上运行nearText查询,只需要在nearText参数里加上vectorizeProperty指定目标属性即可:

import weaviate
import json

client = weaviate.Client(
    url="https://some-endpoint.weaviate.network/",
    additional_headers={
        "X-OpenAI-Api-Key": "<THE-KEY>"
    }
)

# 指定仅基于question属性做nearText搜索
nearText = {
    "concepts": ["biology"],
    "vectorizeProperty": "question"
}

result = (
    client.query
    .get("Question", ["question", "answer", "category"])
    .with_near_text(nearText)
    .with_limit(2)
    .do()
)

print(json.dumps(result, indent=4))

这个参数会让Weaviate单独使用question属性的内容生成向量(或调用该属性已存储的向量)进行匹配,完全忽略其他属性的向量影响。

内容的提问来源于stack exchange,提问作者derek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:50:01