Язык запросов

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

Использование запросов

Запрос представляет из себя логическое выражение. Например, выборка соревнований по названию. Если ввести

марафон & памяти

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

Если нужно отфильтровать все соревнования, у которых в названии встречается марафон или памяти, необходимо ввести запрос:

марафон | памяти

Когда необходимо использовать отрицание, предусмотрен логический оператор "~". Например:

(марафон | памяти) & ~Лопатина

Данный запрос означает: вывести все соревнования, у которых в названии встречаются сочетания букв марафон или памяти и в то же время не встречаются Лопатина.

В последнем запросе были использованы круглые скобки. Это обусловлено тем, что оператор "|" имеет более низкий приоритет, чем оператор "&" (см. таблицу Приоритеты логических операторов). В противном случае, если бы мы не указали круглых скобок, запрос марафон | памяти & ~Лопатина имел бы следующее значение: вывести все соревнования, у которых в названии встречаются сочетания букв памяти не встречаются Лопатина, либо все соревнования, у которых в названии встречается марафон.

Вы можете использовать скобки и для построения более сложных запросов.

Помимо вышеописанных операторов, возможно использование операторов для задания масок. Например, вы не помните название нужного вам соревнования, но точно знаете что одно слово в название начинается на "Верхо" и заканчивается на "кий", при этом в названии есть слово "ШИЖМА" либо "ШИЗМА". Для описания данных условий необходимо использовать следующий запрос: Верхо%кий & ШИ_МА. В данном запросе были использованы два оператора: "%", означающий "ноль, либо более любых символов" и оператор "_", означающий "один любой символ".

В случае, если вам необходимо использовать поиск слов, содержащих зарезервированные символы, воспользуйтесь двойными либо одинарными кавычками, например: 'run&swim'. Если вам необходимо найти фразу содержащую пробелы, выделите ее двойными либо одинарными кавычками, например: "Гонка памяти" | 'Марафон памяти'.

Во всех выражениях запроса регистр символов значения не имеет.

Операторы, используемые в запросах

ОператорОписание
&Логический оператор "и" можно опускать: запрос Пётр & Иванов полностью эквивалентен запросу Пётр Иванов.
|Логический оператор "или" позволяет искать записи, содержащие хотя бы один из операндов.
~Логический оператор "не" позволяет искать записи, не содержащие слово, указанное сразу после оператора, либо означает отрицание выражения, следующего сразу за этим оператором.
( )Круглые скобки задают порядок действия логических операторов.
%Оператор задания маски. Означает "0 или более любых символов".
_Оператор задания маски. Означает "1 любой символ".


Приоритеты логических операторов

ОператорПриоритет
~1
&2
|3