Лекция 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

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

Следующая лекция

Предыдущая лекция