🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство пользователя
  • Home
  • Docs
  • Руководство пользователя

  • Поиск и ранжирование

  • Фильтрация

  • Операторы массива

Операторы ARRAY

Milvus предоставляет мощные операторы для запросов к полям массивов, позволяя вам фильтровать и извлекать сущности на основе содержимого массивов.

Все элементы в массиве должны быть одного типа, а вложенные структуры внутри массивов рассматриваются как обычные строки. Поэтому при работе с полями ARRAY рекомендуется избегать чрезмерно глубокой вложенности и следить за тем, чтобы структуры данных были как можно более плоскими для достижения оптимальной производительности.

Доступные операторы ARRAY

Операторы ARRAY позволяют выполнять тонкие запросы к полям массивов в Milvus. К таким операторам относятся.

  • ARRAY_CONTAINS(identifier, expr): проверяет, существует ли определенный элемент в поле массива.

  • ARRAY_CONTAINS_ALL(identifier, expr): гарантирует, что все элементы указанного списка присутствуют в поле массива.

  • ARRAY_CONTAINS_ANY(identifier, expr): проверяет, присутствует ли в поле массива какой-либо элемент из указанного списка.

  • ARRAY_LENGTH(identifier, expr): позволяет фильтровать сущности по количеству элементов в поле массива.

ARRAY_CONTAINS

Оператор ARRAY_CONTAINS проверяет, существует ли определенный элемент в поле массива. Он полезен, когда нужно найти сущности, в которых заданный элемент присутствует в массиве.

Пример

Предположим, у вас есть поле массива history_temperatures, которое содержит зарегистрированные самые низкие температуры за разные годы. Чтобы найти все сущности, в которых массив содержит значение 23, вы можете использовать следующее выражение фильтра.

filter = 'ARRAY_CONTAINS(history_temperatures, 23)'

Это вернет все сущности, в которых массив history_temperatures содержит значение 23.

МАССИВ_СОДЕРЖИТ_ВСЕ

Оператор ARRAY_CONTAINS_ALL гарантирует, что все элементы указанного списка присутствуют в поле массива. Этот оператор полезен, когда нужно найти сущности, содержащие несколько значений в массиве.

Пример

Если вы хотите найти все сущности, в которых массив history_temperatures содержит и 23, и 24, вы можете использовать этот оператор.

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

Это вернет все сущности, в которых массив history_temperatures содержит оба указанных значения.

ARRAY_CONTAINS_ANY

Оператор ARRAY_CONTAINS_ANY проверяет, присутствует ли в поле массива любой элемент из указанного списка. Это полезно, когда нужно найти сущности, содержащие хотя бы одно из указанных значений в массиве.

Пример

Чтобы найти все сущности, в которых массив history_temperatures содержит либо 23, либо 24, вы можете использовать оператор.

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

Это вернет все сущности, в которых массив history_temperatures содержит хотя бы одно из значений 23 или 24.

ARRAY_LENGTH

Оператор ARRAY_LENGTH позволяет фильтровать сущности по количеству элементов в поле массива. Это удобно, когда нужно найти сущности с массивами определенной длины.

Пример

Если вы хотите найти все сущности, в которых массив history_temperatures содержит менее 10 элементов, вы можете использовать.

filter = 'ARRAY_LENGTH(history_temperatures) < 10'

Это вернет все сущности, в которых массив history_temperatures содержит менее 10 элементов.

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?