メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

アレイ演算子

Zilliz Cloudは、配列フィールドをクエリするための強力な演算子を提供し、配列の内容に基づいてエンティティをフィルタリングして取得することができます。

📘ノート

配列内のすべての要素は同じ型でなければならず、配列内のネストされた構造はプレーンな文字列として扱われます。したがって、ARRAYフィールドを使用する場合は、過度に深いネストを避け、データ構造が最適なパフォーマンスのために可能な限りフラットであることを確認することが望ましいです。

利用可能なARRAYオペレーター

ARRAY演算子を使用すると、Zilliz Cloudクラスター内の配列フィールドを細かくクエリできます。これらの演算子は次のとおりです:

  • ARRAY_CONTAINS(identifier, expr):配列フィールドに特定の要素が存在するかどうかをチェックします。

  • ARRAY_CONTAINS_ALL(identifier, expr):指定されたリストのすべての要素が配列フィールドに存在することを保証します。

  • ARRAY_CONTAINS_ANY(identifier, expr):指定されたリストの要素のいずれかが配列フィールドに存在するかどうかをチェックします。

  • ARRAY_LENGTH(identifier, expr):配列フィールドの要素数に基づいてエンティティをフィルタリングできます。

配列を含む

ARRAY_CONTAINS演算子は、配列フィールドに特定の要素が存在するかどうかをチェックします。特定の要素が配列内に存在するエンティティを検索する場合に便利です。

異なる年の記録された最低気温を含む配列フィールドhistory_温度があるとします。配列に値23が含まれるすべてのエンティティを見つけるには、次のフィルタ式を使用します。

filter = 'ARRAY_CONTAINS(history_temperatures, 23)'

これにより、history_温度配列に値23が含まれるすべてのエンティティが返されます。

すべてを含む配列

ARRAY_CONTAINS_ALL演算子は、指定されたリストのすべての要素が配列フィールドに存在することを保証します。この演算子は、配列内に複数の値を含むエンティティを一致させたい場合に便利です。

もしhistory_温度配列に2324の両方が含まれているすべてのエンティティを見つけたい場合は、次のようにします。

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

これにより、history_温度配列に指定された両方の値が含まれるすべてのエンティティが返されます。

配列の内容

ARRAY_CONTAINS_ANY演算子は、指定されたリストの要素のいずれかが配列フィールドに存在するかどうかをチェックします。これは、配列内の指定された値の少なくとも1つを含むエンティティに一致させたい場合に便利です。

History_Temperations配列23または24が含まれるすべてのエンティティを検索するには、次を使用します。

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

これにより、history_温度配列に23または24の値が少なくとも1つ含まれているすべてのエンティティが返されます。

配列の長さ

ARRAY_LENGTH演算子を使用すると、配列フィールドの要素数に基づいてエンティティをフィルタリングできます。これは、特定の長さの配列を持つエンティティを見つける必要がある場合に便利です。

History_Temperations配列の要素数が10未満のすべてのエンティティを検索するには、次のようにします。

filter = 'ARRAY_LENGTH(history_temperatures) < 10'

これにより、History_Temperations配列の要素数が10未満のすべてのエンティティが返されます。