Язык поисковых запросов — это синтаксис, который вы используете для поиска проблем в Google Issue Tracker. Вы можете использовать язык в поисковых запросах, которые вводите в строку поиска. Вы также можете использовать построитель поиска для графического выбора критериев, которые затем преобразуются в язык запросов при закрытии построителя поиска.
Язык запросов позволяет осуществлять поиск по следующим критериям:
- Ключевые слова
- Поле:пары значений
Выполняемые вами поисковые запросы могут содержать несколько критериев, включая комбинацию ключевых слов и пар поле:значение. Синтаксис языка запросов позволяет указать взаимосвязь и порядок рассмотрения критериев с помощью логических операторов , круглых скобок и кавычек.
Поиск по ключевым словам
Ключевые слова — это текстовые строки, которые вы можете использовать для поиска по определенным полям в задачах. Эти поля:
- Заголовок
- Комментарии
- Названия вложений
- Поля, содержащие пользователей (например, Правопреемник или CC ).
- Поля, содержащие внутренний идентификационный номер (например, те, которые указывают компонент или горячие списки, содержащие проблему)
- Поля, содержащие номера версий
- Пользовательские поля
Примером критериев поиска по ключевым словам являются configuration properties строки. Когда вы вводите этот критерий в поиск, Issue Tracker глобально ищет проблемы во всех компонентах и возвращает те, чьи поля содержат оба ключевых слова, в соответствии с вашими разрешениями на управление доступом. Ключевые слова могут находиться в разных полях или в одних и тех же полях.
Ключевые слова также будут соответствовать некоторым основным синонимам, поэтому при поиске по property может дополнительно обнаружиться ошибка, содержащая слово properties . В противном случае поиск будет соответствовать только токенам полного слова, а не обрабатывать запрос как подстроку.
Большинство специальных символов удаляются из ключевых слов перед выполнением поиска. Например, такой запрос, как my-query_text будет разделен на токены my и query_text и возвратит ошибки, соответствующие обоим токенам.
Issue Tracker рассматривает пробел, разделяющий критерии поиска, как неявный оператор AND . Вы можете использовать кавычки ( " ), чтобы указать, что строка, состоящая из нескольких слов, должна рассматриваться как одно ключевое слово. Все поисковые запросы в Issue Tracker не учитывают регистр, независимо от того, используете ли вы кавычки или нет.
Поле:поиск пар значений
Вы также можете указать критерий поиска в виде пары поле:значение. Базовый синтаксис: [field]:[value] . Для текстовых полей этот синтаксис соответствует проблемам, когда указанное поле содержит значение. Для других типов полей он соответствует проблемам, в которых значение поля эквивалентно .
Например, поиск по запросу title:latency соответствует проблемам со словом latency в поле Title . Поиск priority:p0 находит проблемы с приоритетом p0 .
Любое нераспознанное поле будет интерпретироваться как поиск по ключевым словам .
Обратите внимание, что для полей времени и количества помимо символа двоеточия можно использовать и другие реляционные символы. См. Реляционные операторы .
Поиск специальных значений с использованием Any и None
Необязательные поля могут быть запрошены со специальными значениями any и none . any соответствует любому значению, отличному от NULL. none не соответствует нулевым значениям. Список всех поддерживаемых меток полей на языке поисковых запросов см. в Справочнике по поисковым запросам .
Логические операторы
Логические операторы позволяют указать более одного критерия и указать связь между ними. Пробелы вне кавычек действуют как неявные операторы AND Issue Tracker поддерживает следующие дополнительные явные логические операторы:
| Оператор | Альтернативный символ | Описание | Пример |
|---|---|---|---|
| И | {пробел} | Соответствует, если задача содержит оба критерия | star:true AND componentid:46046 |
| ИЛИ | | | Соответствует, если задача содержит любой критерий | type:(Bug|feature_request) |
| НЕТ | - | Соответствует, если задача не содержит критерий | -assignee:jim |
| "..." | Соответствует, если задача содержит цитируемую фразу (слова в кавычке располагаются в том же порядке) | comment:"We have a problem" | |
| ( ) | Группирует значения или критерии поиска вместе | status:open AND (priority:(p0|p1) OR severity:(s0|s1)) |
Обратите внимание на следующее:
Вы должны использовать все заглавные буквы для
AND,ORиNOT.Оператор
NOTимеет одинаковое значение независимо от того, стоит ли он перед именем поля или значением поля. Это означает, что-assignee:jimиassignee:-jimэквивалентны.Используйте круглые скобки, чтобы четко сгруппировать термины в поисковом запросе. По умолчанию Issue Tracker связывает
NOTс термином, следующим за ним, и группируетORс двумя терминами, которые заключают его в скобки. Например,title:(a OR b NOT c AND d)эквивалентенtitle:((a OR b) AND (NOT c) AND d).
Тире
Символ тире ( - ) имеет разные значения в зависимости от контекста поискового запроса:
Issue Tracker рассматривает тире, предшествующее слову в поиске, как оператор
NOT. Например, критерии поиска-assignee:noneилиassignee:-noneвозвращают все задачи, у которых есть правопреемник.Система отслеживания проблем рассматривает строки, соединенные тире, как заключенные в кавычки. Например, критерий поиска
state-of-the-artэквивалентен"state of the art".Issue Tracker рассматривает слова, написанные через дефис в поле задачи, как независимые слова, разделенные пробелами. Это означает, что если в заголовке проблемы есть слово
state-of-the-artи вы выполняете поисковый запросtitle:(of art state the)илиtitle:("state of the art"), проблема возвращается как часть результатов поиска.
Реляционные операторы
Базовый синтаксис критерия поиска поле:значение — [field]:[value] , где символ двоеточия ( : ) указывает, что данное поле должно быть равно или содержать указанное значение, чтобы проблема возвращалась в результатах поиска.
Поля, которые содержат значение времени ( created , modified , resolved , verified и некоторые настраиваемые поля) или значение счетчика ( duplicatecount , votecount , commentcount и cccount ), поддерживают следующие дополнительные операторы отношений:
| Символ | Описание |
|---|---|
| < | Соответствует проблеме, если ее значение меньше или меньше значения поиска. |
| <= | Соответствует проблеме, если ее значение меньше, раньше или равно значению вашего поиска. |
| > | Соответствует проблеме, если ее значение больше или после значения поиска. |
| >= | Соответствует проблеме, если ее значение больше, после или равно значению вашего поиска. |
Поиск по времени
Язык поисковых запросов предоставляет специальный синтаксис для сопоставления полей, содержащих значение времени. Это позволяет системе отслеживания проблем выполнять поиск в определенном диапазоне времени или относительном времени по мере необходимости.
Абсолютный формат времени
Формат указания времени:
[yyyy]-[MM]-[dd]T[HH]:[mm]:[ss] .
В этом формате [yyyy] — год из 4 цифр, [MM] — месяц из 2 цифр, [dd] — день из 2 цифр, [HH] — час из 2 цифр в 24-часовом формате, [mm] — минуты и [ss] — секунды. Все значения времени в результатах поиска интерпретируются как время в формате UTC, даже если в настройках даты и времени выбран другой часовой пояс.
Вы можете указать уровень детализации при поиске проблем, созданных в определенное время, до или после него. Например, вы можете указать created:2014-06 чтобы найти задачи, созданные в любое время в июне 2014 года. Для большей конкретики вы можете выполнить поиск created:2014-06-03T04 , чтобы найти задачи, которые были созданы 3 июня 2014 года в 4-м часу (между 4 и 5 часами утра по всемирному координированному времени).
Временные диапазоны
Вы можете использовать два символа точки ( .. ), чтобы указать диапазон времени в критериях поиска поле:значение. Синтаксис: [field]:[start time]..[end time] . Время начала и окончания может иметь любую необходимую вам степень детализации. Например, verified:2013..2015 возвращает все проблемы, проверенные в 2013, 2014 или 2015 годах.
Относительный формат времени
Вы также можете указать время в днях до сегодняшнего дня. Для этого используйте формат [days]d , где [days] — количество дней в прошлом, которое вы хотите включить в результаты поиска. Например, вы можете использовать modified:5d чтобы найти проблемы, измененные за последние пять дней.
При использовании относительного формата времени оператором должен быть символ двоеточия ( : ), например created:5d . Если вы хотите найти проблемы, которые не попадают в этот диапазон, вы можете использовать оператор NOT или - .
Например, -verified:10d возвращает проблемы, которые не были проверены за последние 10 дней. Если вы хотите найти проблемы, которые были проверены, но не за последние 10 дней, вы можете использовать (-verified:10d) AND status:verified .
«Сегодня» ищет с дневной арифметикой
Вы можете использовать токен today при поиске по времени вместо текущей даты. Он поддерживает использование дневной арифметики, например today+10 и today-2 . Токен today также можно использовать с такими временными диапазонами, как today-2..today+3 . Использование токена today в сохраненных результатах поиска помогает сделать запрос многоразовым.
Примеры:
-
created:today -
modified<=today-10 -
resolved:2024-02-29..today+2 -
customfield1002:today..today+5
Предостережение: как уже упоминалось в формате абсолютного времени , поиск по времени в Issue Tracker осуществляется в формате UTC. То же самое относится и к поискам, которые используются today .