Milvus嵌套字段查询:含列表值JSON过滤语句报错求解
修正Milvus列表类型JSON字段的查询语句
你的问题出在Milvus的filter表达式语法不支持直接用==跟列表字面量['abcd']做比较,解析器无法识别这种写法。根据你的需求,分两种情况修正:
情况1:过滤列表中包含指定元素的记录
如果要筛选dict['key']这个列表字段里包含'abcd'的记录,用ARRAY_CONTAINS函数:
milvus_client.query(filter="ARRAY_CONTAINS(dict['key'], 'abcd')", collection_name="sample_collection")
情况2:过滤列表完全等于['abcd']的记录
如果要精确匹配列表内容完全是['abcd']的记录,使用JSON_EQUAL函数(需要Milvus 2.2及以上版本支持),注意第二个参数是字符串形式的JSON数组:
milvus_client.query(filter="JSON_EQUAL(dict['key'], '[\"abcd\"]')", collection_name="sample_collection")
内容的提问来源于stack exchange,提问作者apostofes
相关产品推荐
相关产品推荐

