Weaviate Python客户端如何使用子选择查询?
解决Weaviate geoCoordinates类型属性的查询子选择问题
你遇到的错误是因为geoCoordinates属于嵌套对象类型,无法直接查询整个属性,必须明确指定要返回的子属性(latitude和longitude)。以下两种写法都可以解决问题:
方法1:使用点符号指定子属性
直接在properties列表中通过点路径明确子字段:
client.query.get(class_name=class_name, properties=["coordinates.latitude", "coordinates.longitude"]).do()
方法2:使用Builder类构建嵌套选择
如果需要更结构化的查询(比如后续扩展子属性),可以用Weaviate提供的Builder类:
from weaviate.gql.get import Builder client.query.get( class_name=class_name, properties=[ Builder("coordinates", ["latitude", "longitude"]) ] ).do()
两种方式都会返回coordinates下的latitude和longitude字段值,不会再触发子选择缺失的错误。
内容的提问来源于stack exchange,提问作者Anon1284712
相关产品推荐
相关产品推荐

