milvus (2.3.3) 两个查询方法 collection.query(...)
和 collection.search(...)
的返回类型是不同的,用错了会说 attribute error 或 object unsubscriptable
这里明确一下,query
返回的结果是一个字典的列表,用 q[0]['id']
来获取第0行id列的值
search
返回的结果是一个 SearchResult
,是一个二维的矩阵,形状是 \((N_q, k)\),其中 \(N_q\) 是查询的个数,\(k\) 是 search
中限制的 top k 个数
对单个查询,应有
assert len(s) == 1
s = s[0]
此时的 s
是一个对象的 Iterable
,此时还要
s = list(s)
然后可以用 s[0].id
来获取第0个结果的id列的值