高度な検索

高度な検索では JIRA クエリ言語 (JQL: JIRA Query Language) という構造的なクエリによって課題を検索することが出来ます。クイック検索やベーシック検索では定義できない検索条件を指定することができます。(例えば ORDER BY 節など) 。 

  • 複雑な検索条件でない場合は、クイック検索の代わりにこの検索を利用することができます
  • JIRA クエリ言語 (JQL: JIRA Query Language) を使いたくない場合は、代わりにベーシック検索を利用することが出来ます。

JQL の構文は SQL に似ていますが、データベースクエリ言語ではありません。 

スクリーンショット: 高度な検索

このページの内容:

高度な検索

  1. 課題 > Search for Issues (課題を検索する) を選択します。
    • 既存の検索条件がそこにある場合は、新しいフィルターボタンをクリックして検索条件をリセットします。
    • If the basic search is shown instead of the advanced search, click Advanced (next to the  icon).

      ベーシックと詳細検索を切替できないのは何故ですか?

      一般的に「 ベーシック検索 」を使用した検索は、「高度な検索」(例: JQL) へ変換したり、元に戻すことができます。ただし、「高度な検索」を使用して作成されたクエリを「ベーシック検索」に変換することはできないことがあります。具体的には次のような場合は変換できません。

      • OR 演算子を含むクエリ (ただし (project in (A, B)) のような IN 演算子を含むものはベーシック検索に変換できます)
        • 例えば (project = JRA OR project = CONF) というクエリは (project in (JRA, CONF)) というクエリと等しいけど、後者のみがベーシック検索に変換可能です。
      • NOT 演算子を含むクエリ
      • EMPTY 演算子を含むクエリ
      • 比較演算子を含むクエリ: !=、IS、IS NOT、>、>=、<、<=
      • 特定のプロジェクト固有のフィールドや値を指定している (例えば バージョン、コンポーネント、カスタムフィールドなど) けれども、そのプロジェクトが明確に指定されていないクエリ (例えば fixVersion = "4.0"が指定されているけれどもAND project = JRAが指定されていないもの)。これはカスタムフィールドを使っているときに特にトリッキーです。というのもカスタムフィールドはプロジェクトや課題タイプに基づいて設定されるものだからです。一般的には、ベーシック検索で作成できないクエリは、高度な検索からベーシック検索に変換することが出来ません。
  2. JQL クエリを入力します。入力中の JQL の文脈から JIRA はオートコンプリートの候補を表示します。オートコンプリートはアルファベット順に最初の 15 個の候補のみを表示するため、探しているものが候補に見つからないときはもっと多くの文字列を入力する必要があります。

    オートコンプリートのサジェスチョンが表示されないのは何故ですか?
    • 管理者が JQL のオートコンプリートの候補を表示させる機能を無効にしているかも知れません。
    • オートコンプリートは、関数パラメーターに対しては機能しません。
    • オートコンプリートは、すべてのフィールドに対して機能するわけではありません。フィールドを参照して、どのフィールドがオートコンプリートに対応しているか確認してください。
  3. Press Enter or click  to run your query. Your search results will display in the issue navigator.

高度な検索を理解する

以下のトピックについて読んで、高度な検索を最大限に活かしてください。

JQL クエリを構築する

シンプルな JQL クエリ('節' とも呼ばれます)はフィールド演算子と、1つ以上のもしくは関数によって構成されます。例えば以下のようなものがあります。

project = "TEST"

このクエリは "TEST" プロジェクトのすべての課題を検索します。この JQL は "project" フィールドと、EQUALS 演算子と、"TEST"というを利用しています。

より複雑なクエリには以下のようなものがあります。

project = "TEST" AND assignee = currentuser()

このクエリは "TEST" プロジェクトの中で担当者 (assignee) が現在ログインしているユーザーである課題を検索します。この JQL は "project"フィールドと、EQUALS 演算子と、"TEST" というと "AND" キーワードと "currentuser()" 関数によって構成されています。

フィールド、演算子、キーワード、関数に関する詳細は以下の リファレンス をご覧ください。

演算子の優先順位を設定する

複雑な JQL に対して優先順位を付けたいときは丸括弧を使用することができます。

例えば、'Sysadmin' プロジェクトのすべての解決済み課題と、システム管理者(ユーザー名は bobsmith)が担当しているすべての課題(ステータスとプロジェクトは問わない)を検索する場合、以下のように boolean 演算子の優先順位を設定します。

(status=resolved AND project=SysAdmin) OR assignee=bobsmith

括弧を使用しない場合、ステートメントは左から右に評価されます。

節をグルーピングする目的で丸括弧を使うこともできます。これは NOT 演算子を使うときなどに利用します。

制限されている言葉と文字

予約文字

JQLは、予約文字があります。

space (" ") + . , ; ? | * / % ^ $ # @ [ ]

これらの文字をクエリで利用したい場合、

  • これらの文字を一重引用符(') または二重引用符 (") で囲む必要があります;
    また、 テキスト領域に予約文字を利用してテキスト検索を行う場合、
  • 2つのバックスラッシュを直前に置きます

例:

  • version = "[example]"
  • summary ~ "\\[example\\]"

予約語

JQL には予約語もあります。これらの言葉をクエリで利用する場合は、引用符(シングルクォテーションもしくはダブルクォテーション)で囲む必要があります。

表示する...

"abort", "access", "add", "after", "alias", "all", "alter", "and", "any", "as", "asc", "audit", "avg", "before", "begin", "between", "boolean", "break", "by", "byte", "catch", "cf", "char", "character", "check", "checkpoint", "collate", "collation", "column", "commit", "connect", "continue", "count", "create", "current", "date", "decimal", "declare", "decrement", "default", "defaults", "define", "delete", "delimiter", "desc", "difference", "distinct", "divide", "do", "double", "drop", "else", "empty", "encoding", "end", "equals", "escape", "exclusive", "exec", "execute", "exists", "explain", "false", "fetch", "file", "field", "first", "float", "for", "from", "function", "go", "goto", "grant", "greater", "group", "having", "identified", "if", "immediate", "in", "increment", "index", "initial", "inner", "inout", "input", "insert", "int", "integer", "intersect", "intersection", "into", "is", "isempty", "isnull", "join", "last", "left", "less", "like", "limit", "lock", "long", "max", "min", "minus", "mode", "modify", "modulo", "more", "multiply", "next", "noaudit", "not", "notin", "nowait", "null", "number", "object", "of", "on", "option", "or", "order", "outer", "output", "power", "previous", "prior", "privileges", "public", "raise", "raw", "remainder", "rename", "resource", "return", "returns", "revoke", "right", "row", "rowid", "rownum", "rows", "select", "session", "set", "share", "size", "sqrt", "start", "strict", "string", "subtract", "sum", "synonym", "table", "then", "to", "trans", "transaction", "trigger", "true", "uid", "union", "unique", "update", "user", "validate", "values", "view", "when", "whenever", "where", "while", "with"

JIRA 管理者向けの注意点: このリストは JqlStringSupportImpl.java ファイル内でハードコードされています。

テキスト検索を実施する

以下のフィールドでは CONTAINS 演算子を使って Lucene のテキスト検索を利用することができます。

Summary, Description, Environment, Comments, そして "Free Text Searcher" を利用しているカスタムフィールド(カスタムフィールドタイプに Free Text Field, Text Field, Read-only Text Field を利用しているもの)

詳しくはテキストフィールドの検索構文を参照してください。

参考

  説明 参考
フィールド JQL におけるフィールドとは、JIRA フィールド(もしくは JIRA が定義したカスタムフィールド)のことです。

フィールドについて 

演算子 JQL における演算子とは、1文字以上の記号または文字によってその左側に記載されるフィールドと右側に記載される値を比較するもので、真となる結果だけが取得されます。いくつかの演算子は NOT キーワードを利用することができます。

演算子リファレンスページ

演算子の一覧を表示する

キーワード

JQL のキーワードは、次のうちいずれかに当てはまる単語または語句となります。

  • 2 つ以上の条件を結合させて複雑な JQL クエリを形成する
  • 1 つ以上の条件のロジックを置き換える
  • 演算子のロジックを変更する
  • JQL クエリ内に明確な定義がある
  • JQL クエリの結果を置き換える特定の関数を実行する。

キーワードについて

キーワード一覧を表示する

関数

JQL における関数は、言葉のあとに丸括弧が続くもので、1つ以上の値や JIRA フィールドを含むことがあります。

関数は特定の JIRA データまたは関数内のコンテンツの計算を実行するもので、関数または関数が利用される節が真となる結果だけが取得されます。

関数について

保存された検索条件を実行する

保存した検索(フィルターとして保存)は、高度な検索の利用時に、左側のパネルに表示されます。左側にパネルが表示されていない場合は、マウスを画面左側にかざして表示させてください。

例えばMy Open Issuesというフィルターを実行するには、これを単にクリックします。高度な検索の画面が開いて JQL が設定され、検索結果が表示されます。

次のステップ

関連トピックはこちら

最終更新日 2017 年 5 月 25 日

この翻訳に満足しましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.