検索クエリ言語

検索クエリ言語は、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 では、次の明示的な論理演算子がサポートされています。

演算子 代替記号 説明
かつ {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))

次の点に注意してください。

  • 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 を使用します。