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

如何获取Milvus集合数据?查询代码报错求助

问题解决:Milvus查询报错无法解析表达式

错误原因

从集合描述信息能明确两个关键点:

  • 集合的主键字段实际名为id,而非你代码里用的_id
  • 集合未启用动态字段(enable_dynamic_field: False)

_id是Milvus动态字段模式下的主键别名,但当前集合不支持动态字段,且实际主键字段为id,因此用_id >= 0作为过滤条件会导致表达式解析失败。

修正后的代码

方案1:使用正确的主键字段名过滤

from pymilvus import MilvusClient

# 初始化Milvus客户端
client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)
res = client.query(
    collection_name="test_collection",
    filter="id >= 0",  # 替换为集合实际主键字段名id
    limit=5,
) 

print(res)

方案2:无需过滤,直接获取前5条数据

如果只是想查看集合中的数据,不需要过滤条件的话,可以简化代码:

from pymilvus import MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)
res = client.query(
    collection_name="test_collection",
    limit=5,
    output_fields=["id", "embedding"]  # 可选,指定要返回的字段
) 

print(res)

补充说明

  • 只有当集合启用动态字段时,Milvus才会自动生成_id作为主键别名;未启用动态字段时,必须使用定义集合时指定的实际主键字段名。
  • output_fields参数可以明确指定返回哪些字段,避免返回不必要的数据(不指定时默认返回所有字段)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:43:23