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

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

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

  • Фильтрация

  • Основные операторы

Основные операторы

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

Операторы сравнения

Операторы сравнения используются для фильтрации данных на основе равенства, неравенства или размера. Они применимы к числовым, текстовым полям и полям даты.

Поддерживаемые операторы сравнения.

  • == (Равно)

  • != (Не равно)

  • > (Больше, чем)

  • < (Меньше, чем)

  • >= (Больше или равно)

  • <= (Меньше или равно)

Пример 1: Фильтрация с помощью Greater Than or Equal To (>=)

Если вы хотите найти все сущности с rating больше или равно 4.

filter = 'rating >= 4'

Пример 2: Фильтрация с помощью Less Than or Equal To (<=)

Чтобы найти сущности с discount меньше или равным 10%.

filter = 'discount <= 10'

Операторы диапазона

Операторы диапазона помогают фильтровать данные на основе определенных наборов или диапазонов значений.

Поддерживаемые операторы диапазона.

  • IN: Используются для поиска значений в определенном наборе или диапазоне.

  • LIKE: : Используется для поиска шаблона (в основном для текстовых полей).

Пример 1: Использование IN для поиска нескольких значений

Если вы хотите найти все сущности, для которых color является либо "красным", либо "зеленым", либо "синим".

filter = 'color in ["red", "green", "blue"]'

Это полезно, когда нужно проверить принадлежность к списку значений.

Пример 2: Использование LIKE для сопоставления с образцом

Оператор LIKE используется для поиска шаблонов в строковых полях. Он может сопоставлять подстроки в различных позициях в тексте: в качестве префикса, инфикса или суффикса. Оператор LIKE использует символ % в качестве подстановочного знака, который может соответствовать любому количеству символов (включая ноль).

Префиксное совпадение (начинается с)

Чтобы выполнить префиксное совпадение, при котором строка начинается с заданного шаблона, можно поместить шаблон в начало и использовать оператор % для соответствия всем символам, следующим за ним. Например, чтобы найти все продукты, чье name начинается с "Prod".

filter = 'name LIKE "Prod%"'

В этом случае будет найден любой продукт, название которого начинается с "Prod", например "Product A", "Product B" и т. д.

Суффиксное совпадение (заканчивается на)

Для суффиксного совпадения, когда строка заканчивается заданным шаблоном, поместите символ % в начало шаблона. Например, чтобы найти все продукты, чей name заканчивается на "XYZ".

filter = 'name LIKE "%XYZ"'

В этом случае будет найден любой продукт, название которого заканчивается на "XYZ", например "ProductXYZ", "SampleXYZ" и т. д.

Инфиксное совпадение (Contains)

Чтобы выполнить инфиксное совпадение, при котором шаблон может встречаться в любом месте строки, вы можете поместить символ % как в начало, так и в конец шаблона. Например, чтобы найти все продукты, в названии которых name содержится слово "Pro".

filter = 'name LIKE "%Pro%"'

В этом случае будет найден любой продукт, в названии которого содержится подстрока "Pro", например "Product", "ProLine" или "SuperPro".

Арифметические операторы

Арифметические операторы позволяют создавать условия на основе вычислений с использованием числовых полей.

Поддерживаемые арифметические операторы.

  • + (Сложение)

  • - (Вычитание)

  • * (Умножение)

  • / (Деление)

  • % (Модуль)

  • ** (Экспоненция)

Пример 1: Использование сложения (+)

Найти объекты, в которых цена total равна сумме base_price и tax.

filter = 'total == base_price + tax'

Пример 2: Использование вычитания (-)

Найти объекты, в которых quantity больше 50, а quantity_sold меньше 30.

filter = 'quantity - quantity_sold > 50'

Пример 3: Использование умножения (*)

Чтобы найти объекты, где price больше 100 и quantity больше 10, перемножьте их.

filter = 'price * quantity > 1000'

Пример 4: Использование деления (/)

Для поиска произведений, в которых total_price, деленное на quantity, меньше 50.

filter = 'total_price / quantity < 50'

Пример 5: Использование модуля (%)

Для поиска объектов, в которых id является четным числом (т. е. кратным 2).

filter = 'id % 2 == 0'

Пример 6: Использование экспоненции (**)

Для поиска сущностей, в которых price, возведенное в степень 2, больше 1000.

filter = 'price ** 2 > 1000'

Логические операторы

Логические операторы используются для объединения нескольких условий в более сложное выражение фильтра. К ним относятся AND, OR и NOT.

Поддерживаемые логические операторы.

  • AND: Объединяет несколько условий, которые все должны быть истинными.

  • OR: : Комбинирует условия, из которых хотя бы одно должно быть истинным.

  • NOT: Отрицает условие.

Пример 1: Использование AND для объединения условий

Найти все товары, в которых price больше 100, а stock больше 50.

filter = 'price > 100 AND stock > 50'

Пример 2: Использование OR для объединения условий

Найти все товары, для которых color является либо "красным", либо "синим".

filter = 'color == "red" OR color == "blue"'

Пример 3: Использование NOT для исключения условия

Найти все товары, для которых color не является "зеленым".

filter = 'NOT color == "green"'

Советы по использованию основных операторов с полями JSON и ARRAY

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

Например, если у вас есть поле product, содержащее несколько ключей, таких как price, model и tags, всегда ссылайтесь непосредственно на ключ.

filter = 'product["price"] > 1000'

Чтобы найти записи, в которых первая температура в массиве записанных температур превышает определенное значение, используйте.

filter = 'history_temperatures[0] > 30'

Заключение .

Milvus предлагает ряд базовых операторов, которые обеспечивают гибкость при фильтрации и запросе данных. Комбинируя операторы сравнения, диапазона, арифметические и логические операторы, вы можете создавать мощные выражения фильтрации для сужения результатов поиска и эффективного извлечения нужных данных.

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

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

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

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