Лекция №11. Язык запросов
Лекция 11. Язык запросов
Язык запросов позволяет создавать более удобные фильтры, если пользователю не хватает встроенных. Рассмотрим язык запросов, и начнём с формата запросов.
Общий формат записи запроса: “параметр”: “значение”
Примеры использования:
- Задачи, входящие в очередь TEST:
“Queue”: “TEST”
- Задачи, исполнителем которых является пользователь Алиса Литл:
“Assignee”: “Алиса Литл”
- Задачи, со статусами Открыт или В работе.
“Status”: “Открыт”, “В работе”
- Задачи, созданные с 1 по 30 января 2017 года:
“Created”: “2017-01-01”..“2017-01-30”
Если требуется отфильтровать задачи по нескольким значениям одного параметра, нужно перечислить их через запятую:
параметр: “значение1”, “значение2”, “значение3”
author: “vpupkin”,“iivanov”
Можно объединять несколько условий в одном фильтре с помощью логических операторов:
AND — логический оператор И. Условия, объединенные таким оператором, должны выполняться одновременно.
параметр1: “значение1” AND параметр2: “значение2”
OR — логический оператор ИЛИ. Должно выполняться хотя бы одно из условий, объединенных таким оператором.
параметр1: “значение1” OR параметр2: “значение2”
Кроме поиска по параметрам, можно воспользоваться привычным текстовым поиском. Для этого в поле ввода запросов нужно ввести текст, который нужно найти.
Поиск ведется по всем текстовым полям задачи: названию, описанию и комментариям.
- Чтобы искать только по одному из полей, нужно указать его с помощью параметра:
- Summary — название задачи.
- Description — описание задачи.
- Comment — текст комментария.
- History — текст в истории изменений.
Чтобы найти только те задачи, у которых в заданном поле есть точное совпадение с текстом запроса, используется оператор #:
Summary: #“Version 2.0”
Чтобы найти только те задачи, в заданном поле которых не встречается фрагмент текста, используется оператор !:
Summary: !“UI”
Чтобы найти только те задачи, в названии которых нет точного совпадения с текстом запроса, используется оператор ~. Оператор работает только для поля Summary:
Summary: ~“UI Update 2.0”
- Имя и фамилия в кавычках: “имя фамилия” — для поиска по точному совпадению с именем и фамилией пользователя.
Author: “Алиса Литл”
- Логин с символом @ в конце: логин@ — для поиска по точному совпадению с логином пользователя.
Assignee: user3370@
- Имя, фамилия или логин пользователя — для поиска по точному совпадению с любыми из этих данных.
Примеры:
- Followers: Алиса — такой запрос выведет задачи, наблюдатели которых — пользователи с именем Алиса и любой фамилией.
- Followers: alice — такой запрос выведет задачи, наблюдатель которых — пользователь с логином alice@ или пользователь с именем Alice (если имя указано по-английски).
Кроме проверки на точное совпадение, язык запросов поддерживает операции сравнения:
Не равно
параметр: !“значение”
Больше, Меньше, Меньше или равно, Больше или равно
Операции применяются только для числовых параметров и параметров даты и времени.
параметр: >число
параметр: <число
параметр: >=число
параметр: <=число
Лежит в интервале
Операция применяется только для числовых параметров.
параметр: число1 .. число2
Отсортировать результаты фильтра можно, задав в конце запроса параметр “Sort By”. В качестве значения следует указать имя поля для сортировки:
“Sort By”: Created
При необходимости можно задать порядок сортировки по возрастанию (ASC) или по убыванию (DESC):
“Sort By”: Created ASC
Чтобы указать несколько полей для сортировки, их нужно перечислить через запятую в порядке приоритета:
“Sort By”: Created ASC, Updated DESC
Помимо всего вышеперечисленного, есть большое количество параметров фильтров и функций, которые используются в языке запроса, которые нет особого смысла перечислять, так как большинство из них можно просто найти, по необходимости.