検索クエリ言語

検索クエリ言語は、Google Issue Tracker で問題検索を実行するために使用する構文です。検索バーに入力した検索クエリに言語を使用できます。検索ビルダーを使用して条件を視覚的に選択することもできます。検索ビルダーを閉じると、条件はクエリ言語に変換されます。

クエリ言語を使用すると、次の条件で検索できます。

  • キーワード
  • フィールドと値のペア

実行する検索には、キーワードとフィールドと値のペアの組み合わせなど、複数の条件を含めることができます。クエリ言語の構文では、論理演算子、かっこ、引用符を使用して、条件を考慮する関係と順序を指定できます。

キーワードの検索数

キーワードとは、問題の特定のフィールドを検索するために使用できるテキスト文字列です。これらのフィールドは次のとおりです。

  • タイトル
  • コメント
  • 添付ファイルの名前
  • ユーザーを含むフィールド(割り当て先、CC など)
  • 内部 ID 番号を含むフィールド(問題を含むコンポーネントやホットリストを指定するフィールドなど)
  • バージョン番号を含むフィールド
  • カスタム フィールド

キーワード検索条件の例として、文字列 configuration properties があります。検索にこの条件を入力すると、Issue Tracker はすべてのコンポーネントの問題をグローバルに検索し、アクセス制御の権限に従って、上記のフィールドに両方のキーワードが含まれている問題を返します。キーワードは、異なるフィールドまたは同じフィールドにある可能性があります。

Issue Tracker は、検索条件を区切るスペース文字を暗黙的な AND 演算子として扱います。複数単語の文字列を 1 つのキーワードと見なすよう指定するには、引用符(")を使用します。Issue Tracker での検索では、引用符を使用するかどうかにかかわらず、大文字と小文字が区別されません。

フィールドと値のペアの検索

検索条件をフィールドと値のペアとして指定することもできます。基本構文は [field]:[value] です。テキスト フィールドの場合、この構文は、指定したフィールドに値が含まれている問題と一致します。他のタイプのフィールドでは、フィールド値が同等の問題と一致します。

たとえば、title:latency を検索すると、[Title] フィールドの単語 latency に関する問題に一致します。priority:p0 を検索すると、優先度 p0 の問題が検出されます。

time フィールドと count フィールドでは、コロン文字以外にも関係記号を使用できます。後述の関係演算子をご覧ください。

「any」と「none」を使用した特殊な値の検索

オプション フィールドは、特別な値 anynone を使用してクエリできます。any は、null 以外の任意の値に一致します。none は null 値と一致します。検索クエリ言語でサポートされているすべてのフィールド ラベルのリストについては、検索クエリのリファレンスをご覧ください。

論理演算子

論理演算子を使用すると、複数の条件を指定し、条件間の関係を示すことができます。前述のように、引用符の外の空白文字は暗黙的な AND 演算子として機能します。Issue Tracker は、次の明示的な論理演算子をサポートしています。

演算子 別の記号 説明
AND {空白} 問題に両方の基準が含まれている場合に一致します star:true AND componentid:46046
OR | 問題にいずれかの基準が含まれている場合に一致します type:(Bug|feature_request)
述べない - 問題に条件が含まれていない場合は一致します -assignee:jim
"..." 問題に引用符で囲まれたフレーズが含まれている場合が一致します(引用内の単語は同じ順序で表示されます)。 comment:"We have a problem"
( ) 値または検索条件をグループ化する status:open AND (priority:(p0|p1) OR severity:(s0|s1))

次の点にご留意ください。

  • ANDORNOT はすべて大文字にする必要があります。

  • NOT 演算子の意味は、フィールド名またはフィールド値の前のどちらでも同じです。つまり、-assignee:jimassignee:-jim は同じ意味になります。

  • かっこをふんだんに使い、検索クエリ内の用語を明確にグループ化します。デフォルトでは、Issue Tracker は NOT をその直後の用語にのみ関連付け、OR をそれを角かっこで囲んだ 2 つの用語にグループ化します。たとえば、検索クエリ title:(a OR b NOT c AND d)title:((a OR b) AND (NOT c) AND d) と同じです。

ダッシュ

ダッシュ文字(-)は、検索クエリのコンテキストによって意味が異なります。

  • Issue Tracker は、単語の前にあるダッシュを NOT 演算子として扱います。たとえば、検索条件 -assignee:none または assignee:-none を指定すると、担当者があるすべての問題が返されます。

  • Issue Tracker は、ダッシュ文字で接続された文字列を引用符で囲まれているものとして扱います。たとえば、検索条件 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] です。コロン文字(:)は、検索結果に問題を返すには、指定されたフィールドが指定された値と等しいか、その値を含む必要があることを示します。

時間値(createdmodifiedresolvedverified、特定のカスタム フィールド)またはカウント値(duplicatecountvotecountcommentcountcccount)を含むフィールドでは、次の関係演算子もサポートされています。

記号 説明
< 値が検索値より小さい場合、または検索値よりも前である場合、問題と一致します。
<= 値が検索値以下、またはそれ以前である場合、問題に一致します。
> 値が検索値より大きい場合または検索値より後ろの場合、問題と一致します。
>= 値が検索値以降、または検索値と等しい場合、問題に一致します。

時間検索

検索クエリ言語には、時間値を含むフィールドを照合するための特別な構文が用意されています。これにより、Issue Tracker は必要に応じて時間の範囲または相対時間で検索できます。

絶対時刻の形式

時間を指定する形式は次のとおりです。

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

この形式では、[yyyy] は 4 桁の年、[MM] は 2 桁の月、[dd] は 2 桁の日、[HH] は 24 時間制の 2 桁の時、[mm] は分、[ss] は秒です。時間はすべて UTC です。

特定の時点、前、または後に作成された問題を検索するときに、必要な詳細度を指定できます。たとえば、created:2014-06 を指定すると、2014 年 6 月のいずれかの時点で作成された問題を検索できます。より具体的に、created:2014-06-03T04 を検索すると、2014 年 6 月 3 日の 4 時間目(UTC 午前 4 ~ 5 時)に作成された問題を見つけることができます。

期間

フィールド/値の検索条件で期間を指定するには、2 つのピリオド文字(..)を使用します。構文は [field]:[start time]..[end time] です。開始時刻と終了時刻は、必要に応じて任意の程度に指定できます。たとえば、verified:2013..2015 と指定すると、2013 年、2014 年、または 2015 年に確認されたすべての問題が返されます。

相対時間形式

今日より前の日数で時刻を指定することもできます。これを行うには、[days]d の形式を使用します。ここで、[days] は、検索結果に含める過去の日数です。たとえば、modified:5d を使用して過去 5 日間に変更された問題を検索できます。

相対時間形式を使用する場合、演算子は created:5d のようなコロン文字(:)にする必要があります。範囲に収まらない問題を見つけるには、NOT 演算子または - 演算子を使用します。

たとえば、-verified:10d は、過去 10 日間で検証されていない問題を返します。過去 10 日間ではなく、検証済みの問題を検索する場合は、(-verified:10d) AND status:verified を使用します。

日演算を使用した「今日」の検索

時間検索で today トークンを現在の日付の代わりに使用できます。today+10today-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 を使用する検索についても同様です。