検索クエリ言語は、Google Issue Tracker で問題の検索を行う際に使用する構文です。検索バーに入力する検索語句で言語を使用できます。検索ビルダーを使用して条件をグラフィカルに選択することもできます。選択した条件は、検索ビルダーを閉じるとクエリ言語に変換されます。
クエリ言語では、次の条件で検索できます。
- キーワード
- フィールドと値のペア
実行する検索には、キーワードとフィールド:値のペアの組み合わせなど、複数の条件を含めることができます。クエリ言語の構文では、論理演算子、かっこ、引用符を使用して、条件が考慮される関係と順序を指定できます。
キーワード検索
キーワードは、問題の特定のフィールドを検索するために使用できるテキスト文字列です。これらのフィールドは次のとおりです。
- タイトル
- コメント
- 添付ファイルの名前
- ユーザーを含むフィールド([Assignee] や [CC] など)
- 内部 ID 番号を含むフィールド(問題を含むコンポーネントやホットリストを指定するフィールドなど)
- バージョン番号を含むフィールド
- カスタム フィールド
キーワード検索条件の例としては、文字列 configuration properties などがあります。この条件を検索に入力すると、Issue Tracker はすべてのコンポーネントの問題をグローバルに検索し、アクセス制御の権限に従って、両方のキーワードを含むフィールドを持つ問題を返します。キーワードは異なるフィールドに配置することも、同じフィールドに配置することもできます。
キーワードは基本的な同義語にも一致するため、property を検索すると、properties という単語を含むバグも検出される可能性があります。クエリを部分文字列として扱うのではなく、単語トークン全体のみが一致するようになります。
ほとんどの特殊文字は、検索を実行する前にキーワードから削除されます。たとえば、my-query_text のようなクエリは、トークン my と query_text に分割され、両方のトークンに一致するバグが返されます。
Issue Tracker では、検索条件を区切るスペース文字は暗黙的な AND 演算子として扱われます。複数の単語からなる文字列を単一のキーワードとして扱うように指定するには、引用符(")を使用します。Issue Tracker での検索では、引用符を使用するかどうかにかかわらず、大文字と小文字が区別されません。
フィールドと値のペアの検索
検索条件をフィールドと値のペアとして指定することもできます。基本構文は [field]:[value] です。テキスト フィールドの場合、この構文は、指定されたフィールドに値が含まれている問題と一致します。他のタイプのフィールドの場合、フィールド値が同等な問題と一致します。
たとえば、title:latency を検索すると、[Title] フィールドに latency という単語を含む問題が一致します。priority:p0 を検索すると、優先度が p0 の問題が見つかります。
認識できないフィールドは、キーワード検索として解釈されます。
時間フィールドとカウント フィールドでは、コロン文字以外の関係記号を使用できます。関係演算子をご覧ください。
any と none を使用した特殊な値の検索
オプション フィールドは、特殊な値 any と none でクエリできます。any は、null 以外の任意の値に一致します。none は null 値と一致します。検索クエリ言語でサポートされているすべてのフィールドラベルの一覧については、検索クエリのリファレンスをご覧ください。
論理演算子
論理演算子を使用すると、複数の条件を指定し、それらの条件間の関係を指定できます。引用符外のスペース文字は、暗黙的な AND 演算子として機能します。問題トラッカーは、次の明示的な論理演算子をサポートしています。
| 演算子 | 代替記号 | 説明 | 例 |
|---|---|---|---|
| AND | {whitespace} | 問題に両方の条件が含まれている場合に一致 | star:true AND componentid:46046 |
| または | | | 問題にいずれかの条件が含まれている場合に一致 | type:(Bug|feature_request) |
| NOT | - | 問題に条件が含まれていない場合に一致 | -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を括弧で囲む 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] です。コロン文字(:)は、問題が検索結果に返されるように、指定されたフィールドが指定された値と等しいか、指定された値を含む必要があることを指定します。
時間値(created、modified、resolved、verified、特定のカスタム フィールド)またはカウント値(duplicatecount、votecount、commentcount、cccount)を含むフィールドは、次の追加の関係演算子をサポートしています。
| 記号 | 説明 |
|---|---|
| < | 値が検索値より小さい場合に問題と一致します。 |
| <= | 値が検索値より小さい、前の値、または検索値と等しい場合に問題と一致します。 |
| > | 値が検索値より大きい場合に問題と一致します。 |
| >= | 値が検索値より大きい、検索値より後、または検索値と等しい場合に問題と一致します。 |
時間の検索
検索クエリ言語には、時刻値を含むフィールドを照合するための特別な構文が用意されています。これにより、必要に応じて 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+10 や today-2 などの日数演算を使用できます。today トークンは、today-2..today+3 などの期間でも使用できます。保存済み検索で today トークンを使用すると、クエリを再利用できます。
例:
created:todaymodified<=today-10resolved:2024-02-29..today+2customfield1002:today..today+5
注意: 絶対時間形式で説明したように、Issue Tracker での時間検索は UTC 時間で実行されます。today を使用する検索についても同様です。