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

Язык поисковых запросов — это синтаксис, который вы используете для поиска проблем в 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
  • nearestslo:today+10
  • resolved:2024-02-29..today+2
  • customfield1002:today..today+5

Предостережение: как уже упоминалось в формате абсолютного времени , поиск по времени в Issue Tracker осуществляется в формате UTC. То же самое относится и к поискам, которые используются today .