検索クエリ言語

検索クエリ言語は、Google Issue Tracker で問題の検索を行う際に使用する構文です。検索バーに入力する検索語句で言語を使用できます。また、検索ビルダーを使用して条件をグラフィカルに選択することもできます。選択した条件は、検索ビルダーを閉じるとクエリ言語に変換されます。

クエリ言語では、次の条件で検索できます。

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

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

キーワード検索

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

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

キーワード検索条件の例としては、文字列 configuration properties などがあります。この条件を検索に入力すると、Issue Tracker はすべてのコンポーネントで問題をグローバルに検索し、アクセス制御の権限に従って、両方のキーワードを含むフィールドを持つ問題を返します。キーワードは異なるフィールドに配置することも、同じフィールドに配置することもできます。

キーワードは基本的な同義語にも一致するため、property を検索すると、properties という単語を含むバグも検出される可能性があります。指定しないと、クエリは部分文字列として扱われず、単語トークン全体のみが検索されます。

ほとんどの特殊文字は、検索を実行する前にキーワードから削除されます。たとえば、my-query_text のようなクエリは、トークン myquery_text に分割され、両方のトークンに一致するバグが返されます。

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

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

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

たとえば、title:latency を検索すると、[Title] フィールドに latency という単語を含む問題が一致します。priority:p0 を検索すると、優先度が p0 の問題が見つかります。

認識できないフィールドは、キーワード検索として解釈されます。

時間フィールドとカウント フィールドでは、コロン文字以外の関係記号を使用できます。関係演算子をご覧ください。

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

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

論理演算子

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

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

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

  • 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:value 検索条件で期間を指定できます。構文は [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 を使用する検索についても同様です。