Linguagem da consulta de pesquisa

A linguagem de consulta de pesquisa é a sintaxe usada para realizar pesquisas de problemas no Google Issue Tracker. Você pode usar o idioma nas consultas de pesquisa inseridas na barra de pesquisa. Também é possível usar o criador de pesquisas para selecionar graficamente os critérios, que são convertidos no idioma da consulta quando o criador de pesquisas é fechado.

A linguagem de consulta permite pesquisar pelos seguintes critérios:

  • Palavras-chave
  • Pares de campo-valor

As pesquisas que você realiza podem conter vários critérios, incluindo uma combinação de palavras-chave e pares de campo:valor. A sintaxe da linguagem de consulta permite especificar a relação e a ordem em que os critérios são considerados usando operadores lógicos, parênteses e aspas.

Pesquisas de palavras-chave

As palavras-chave são strings de texto que podem ser usadas para pesquisar em determinados campos em problemas. Estes campos são:

  • Título
  • Comentários
  • Nomes dos anexos
  • Campos que contêm usuários (por exemplo, Assignee ou CC)
  • Campos que contêm um número de ID interno (por exemplo, aqueles que especificam o componente ou as listas prioritárias que contêm um problema)
  • Campos que contêm números de versão
  • Campos personalizados

Um exemplo de critério de pesquisa de palavra-chave é a string configuration properties. Quando você insere esses critérios em uma pesquisa, o Issue Tracker pesquisa globalmente os problemas em todos os componentes e retorna aqueles cujos campos contêm as duas palavras-chave, conforme governado pelas permissões de controle de acesso. As palavras-chave podem estar em campos diferentes ou nos mesmos campos.

As palavras-chave também correspondem a alguns sinônimos básicos. Portanto, uma pesquisa por property pode encontrar um bug com a palavra properties. Caso contrário, as pesquisas só vão corresponder a tokens de palavras completos, em vez de tratar a consulta como uma substring.

A maioria dos caracteres especiais é removida das palavras-chave antes da pesquisa. Por exemplo, uma consulta como my-query_text seria dividida nos tokens my e query_text e retornaria bugs correspondentes a ambos.

O Issue Tracker trata o caractere de espaço que separa os critérios de pesquisa como um operador AND implícito. É possível usar aspas (") para especificar que uma string de várias palavras deve ser considerada uma única palavra-chave. Todas as pesquisas no Issue Tracker são indiferentes a maiúsculas e minúsculas, mesmo que você use aspas ou não.

Pesquisas de pares de campo-valor

Também é possível especificar os critérios de pesquisa como um par de campo:valor. A sintaxe de base é [field]:[value]. Para campos de texto, essa sintaxe corresponde a problemas em que o campo especificado contém o valor. Para outros tipos de campos, ele corresponde a problemas em que o valor do campo é equivalente.

Por exemplo, uma pesquisa por title:latency corresponde a problemas com a palavra latency no campo Título. Uma pesquisa por priority:p0 encontra problemas com uma prioridade de p0.

Qualquer campo não reconhecido será interpretado como uma pesquisa de palavra-chave.

Para campos de tempo e contagem, é possível usar outros símbolos relacionais além do caractere dois-pontos. Consulte Operadores relacionais.

Pesquisas de valores especiais usando "any" e "none"

Os campos opcionais podem ser consultados com os valores especiais any e none. any corresponde a qualquer valor não nulo. none corresponde a valores nulos. Para uma lista de todos os rótulos de campo aceitos na linguagem de consulta de pesquisa, consulte a Referência de consulta de pesquisa.

Operadores lógicos

Os operadores lógicos permitem especificar mais de um critério e indicar a relação entre eles. Os caracteres de espaço fora das aspas funcionam como operadores AND implícitos. O Issue Tracker oferece suporte aos seguintes operadores lógicos explícitos:

Operador Símbolo alternativo Descrição Exemplo
E {whitespace} Faz correspondência se o problema tiver ambos os critérios star:true AND componentid:46046
OU | Faz correspondência se o problema contiver um dos critérios. type:(Bug|feature_request)
NOT - Faz correspondência se o problema não contiver os critérios -assignee:jim
"..." Corresponde se o problema tiver uma frase entre aspas (as palavras na citação aparecem na mesma ordem) comment:"We have a problem"
( ) Agrupe valores ou critérios de pesquisa juntos. status:open AND (priority:(p0|p1) OR severity:(s0|s1))

Observe o seguinte:

  • Use letras maiúsculas para AND, OR e NOT.

  • O operador NOT tem o mesmo significado, seja precedendo o nome do campo ou o valor do campo. Isso significa que -assignee:jim e assignee:-jim são equivalentes.

  • Use parênteses para agrupar os termos na consulta de pesquisa. Por padrão, o Issue Tracker associa NOT apenas ao termo imediatamente seguinte e agrupa OR com os dois termos que o contêm. Por exemplo, a consulta de pesquisa title:(a OR b NOT c AND d) é equivalente a title:((a OR b) AND (NOT c) AND d).

Traços

O caractere traço (-) tem significados diferentes com base no contexto de uma consulta de pesquisa:

  • O Issue Tracker trata o traço antes de uma palavra em uma pesquisa como um operador NOT. Por exemplo, os critérios de pesquisa -assignee:none ou assignee:-none retornam todos os problemas que têm um usuário atribuído.

  • O Issue Tracker trata as strings conectadas por um caractere de traço como sendo incluídas entre aspas. Por exemplo, o critério de pesquisa state-of-the-art é equivalente a "state of the art".

  • O Issue Tracker trata palavras com hífen em um campo de problema como palavras independentes separadas por espaços em branco. Isso significa que, se um problema tiver a palavra state-of-the-art no título e você executar a consulta de pesquisa title:(of art state the) ou title:("state of the art"), o problema será retornado como parte dos resultados da pesquisa.

Operadores relacionais

A sintaxe básica para um campo:critérios de pesquisa de valor é [field]:[value], em que o caractere dois-pontos (:) especifica que o campo fornecido precisa ser igual ou conter o valor especificado para que um problema seja retornado nos resultados da pesquisa.

Os campos que contêm um valor de tempo (created, modified, resolved, verified e alguns campos personalizados) ou um valor de contagem (duplicatecount, votecount, commentcount e cccount) aceitam os seguintes operadores relacionais:

Símbolo Descrição
< Faz correspondência com um problema se o valor dele for menor ou anterior ao valor da pesquisa.
<= Faz a correspondência de um problema se o valor dele for menor que, anterior ou igual ao valor da pesquisa.
> Faz correspondência com um problema se o valor dele for maior ou posterior ao valor da pesquisa.
>= Faz correspondência a um problema se o valor dele for maior que, depois ou igual ao valor da pesquisa.

Pesquisas de tempo

A linguagem de consulta de pesquisa fornece uma sintaxe especial para campos correspondentes que contêm um valor de tempo. Isso permite que o Issue Tracker pesquise em um intervalo de horários ou horários relativos, conforme necessário.

Formato de hora absoluta

O formato para especificar um horário é:

[yyyy]-[MM]-[dd]T[HH]:[mm]:[ss].

Nesse formato, [yyyy] é o ano de quatro dígitos, [MM] é o mês de dois dígitos, [dd] é o dia de dois dígitos, [HH] é a hora de dois dígitos de um relógio de 24 horas, [mm] é o minuto e [ss] é o segundo. Todos os horários nas pesquisas são interpretados como UTC, mesmo que você tenha um fuso horário diferente selecionado nas configurações de data e hora.

Você pode especificar o nível de especificidade ao pesquisar problemas criados em, antes ou depois de um determinado horário. Por exemplo, você pode especificar created:2014-06 para encontrar problemas criados em qualquer momento em junho de 2014. Para mais detalhes, pesquise created:2014-06-03T04 para encontrar problemas criados em 3 de junho de 2014 às 4 horas (entre 4h e 5h, UTC).

Períodos

É possível usar dois caracteres de ponto (..) para especificar um período em critérios de pesquisa field:value. A sintaxe é [field]:[start time]..[end time]. Os horários de início e término podem ter qualquer grau de especificidade que você precisar. Por exemplo, verified:2013..2015 retorna todos os problemas verificados em 2013, 2014 ou 2015.

Formato de tempo relativo

Também é possível especificar um horário em dias anteriores a hoje. Para fazer isso, use o formato [days]d, em que [days] é o número de dias no passado que você quer incluir nos resultados da pesquisa. Por exemplo, você pode usar modified:5d para encontrar problemas modificados nos últimos cinco dias.

Ao usar um formato de tempo relativo, o operador precisa ser o caractere dois-pontos (:), como created:5d. Se você quiser encontrar problemas que não se enquadram no intervalo, use o operador NOT ou -.

Por exemplo, -verified:10d retorna problemas que não foram verificados nos últimos 10 dias. Se você quiser encontrar problemas que foram verificados, mas não nos últimos 10 dias, use (-verified:10d) AND status:verified.

Pesquisas "Hoje" com aritmética de dia

É possível usar o token today em pesquisas de tempo como substituto da data atual. Ele oferece suporte ao uso da aritmética de dia, como today+10 e today-2. O token today também pode ser usado com intervalos de tempo, como today-2..today+3. O uso do token today em pesquisas salvas ajuda a tornar a consulta reutilizável.

Exemplos:

  • created:today
  • modified<=today-10
  • nearestslo:today+10
  • resolved:2024-02-29..today+2
  • customfield1002:today..today+5

Observação: conforme mencionado no formato de hora absoluta, as pesquisas de tempo no Issue Tracker são em UTC. O mesmo se aplica a pesquisas que usam today.