ARRAY 操作符
Zilliz Cloud 为查询 ARRAY 字段提供了强大的操作符,使您可以根据 ARRAY 字段内容过滤和查询 Entity。
ARRAY 字段中的所有元素必须是相同的类型,ARRAY 中的嵌套结构将被视为纯字符串。因此,在使用 ARRAY 字段时,建议避免过深的嵌套,并确保数据结构尽可能扁平,以获得最佳性能。
支持的 ARRAY 操作符
ARRAY 操作符允许 Zilliz Cloud clusters中的 ARRAY 类型的字段进行精细查询。这些操作符包括:
-
ARRAY_CONTAINS(identifier, expr)
:用于判断指定 ARRAY 字段值是否包含指定的表达式。 -
ARRAY_CONTAINS_ALL(identifier, expr)
:用于判断指定 ARRAY 字段值是否包含指定表达式中的所有元素。 -
ARRAY_CONTAINS_ANY(identifier, expr)
:用于判断指定 ARRAY 字段值是否包含指定表达式中的任一元素。 -
ARRAY_LENGTH(identifier)
:用于计算指定 ARRAY 字段值的元素个数。
ARRAY_CONTAINS
该操作符检查 ARRAY 字段中是否存在特定元素。当需要查找 ARRAY 中存在指定元素的 Entity 时,可以使用 ARRAY_CONTAINS 操作符。
示例
假设有名为 history_temperatures
的字段包含了各地气象站上报的历年最低气温。您可以使用如下过滤表达式找出最低气温列表中包含了 23 度的所有 Entity。
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
ARRAY_CONTAINS_ALL
该操作符可确保指定列表中的所有元素都出现在 ARRAY 字段中。当需要匹配数组中包含多个值的实体时,该操作符非常有用。
示例
您可以使用如下过滤表达式找出最低气温列表中同时包含了 23 度和 24 度的所有 Entity。
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
ARRAY_CONTAINS_ANY
该操作符检查 ARRAY 字段中是否存在指定列表中的任何元素。当需要匹配数组中至少包含一个指定值的 Entity 时,可以使用该操作符。
示例
您可以使用如下过滤表达式找出最低气温列表中包含了 23 度或 24 度的所有 Entity。
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
ARRAY_LENGTH
该操作符允许您根据 ARRAY 字段中的元素个数进行过滤。这对于找出那些包含了特定个数元素的 Entity 来说十分有用。
示例
您可以使用如下过滤表达式找出最低气温记录少于 10 个的所有 Entity。
filter = 'ARRAY_LENGTH(history_temperatures) < 10'