🚀 免费试用 Zilliz Cloud,完全托管的 Milvus,体验 10 倍的性能提升!立即试用>

milvus-logo
LFAI
首页
  • 用户指南

数组操作符

Milvus 提供强大的操作符来查询数组字段,允许您根据数组内容过滤和检索实体。

数组中的所有元素必须是同一类型,数组中的嵌套结构将被视为纯字符串。因此,在使用 ARRAY 字段时,建议避免过深的嵌套,并确保数据结构尽可能扁平,以获得最佳性能。

可用的 ARRAY 操作符

ARRAY 操作符允许在 Milvus 中对数组字段进行精细查询。这些操作符包括

ARRAY_CONTAINS

ARRAY_CONTAINS 操作符用于检查数组字段中是否存在特定元素。当您想查找数组中存在给定元素的实体时,它非常有用。

示例

假设有一个数组字段history_temperatures ,其中包含不同年份的最低气温记录。要查找数组中包含值23 的所有实体,可以使用以下过滤表达式。

filter = 'ARRAY_CONTAINS(history_temperatures, 23)'

这将返回history_temperatures 数组包含23 值的所有实体。

array_contains_all

ARRAY_CONTAINS_ALL 操作符可确保指定列表中的所有元素都出现在数组字段中。当您要匹配数组中包含多个值的实体时,此操作符非常有用。

示例

如果要查找history_temperatures 数组同时包含2324 的所有实体,可以使用 。

filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'

这将返回history_temperatures 数组同时包含指定值的所有实体。

array_contains_any

ARRAY_CONTAINS_ANY 操作符会检查数组字段中是否存在指定列表中的任何元素。当您想匹配数组中至少包含一个指定值的实体时,此操作非常有用。

示例

要查找history_temperatures 数组包含2324 的所有实体,可以使用 。

filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'

这将返回history_temperatures 数组包含2324 中至少一个值的所有实体。

ARRAY_LENGTH

ARRAY_LENGTH 操作符允许您根据数组字段中元素的数量过滤实体。这在需要查找具有一定长度数组的实体时非常有用。

示例

如果要查找history_temperatures 数组中元素少于 10 个的所有实体,可以使用。

filter = 'ARRAY_LENGTH(history_temperatures) < 10'

这将返回history_temperatures 数组中元素少于 10 个的所有实体。

想要更快、更简单、更好用的 Milvus SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?