Page tree
Skip to end of metadata
Go to start of metadata

高级搜索允许您使用 JIRA 查询语言 (JQL) 构建结构化查询,以搜索事务。您可以指定无法在快速或基本搜索中定义的条件(如 ORDER BY 子句)。

  • 如果您没有复杂搜索条件,则可能需要转为使用快速搜索
  • 如果您不习惯使用 JIRA 查询语言 (JQL),则可能需要转为使用基本搜索

注意,尽管 JQL 使用类似于 SQL 的语法,但它不是数据库查询语言。

屏幕截图:高级搜索

本页内容:

高级搜索

  1. 导航至 Issues(位于标题中)> Search for issues
     
    • 如果存在现有的搜索条件,则单击 New filter 按钮,以重置搜索条件。
    • 如果显示的是基本搜索而不是高级本搜索,则单击 Advanced(位于  图标旁边)。 

      一般而言,使用基本搜索创建的查询可以转换为高级搜索,然后再还原。但是,使用高级搜索创建的查询可能无法转换为基本搜索,尤其是在以下情况下:

      • 查询中包含 OR 运算符(注意,您可以使用 IN 运算符,它可以进行转换,如 project in (A, B)
        • 也就是说,虽然 (project = JRA OR project = CONF) 与 (project in (JRA, CONF)) 这两个查询等效,但只有第二个查询可以进行转换。
      • 查询包含 NOT 运算符
      • 查询包含 EMPTY 运算符
      • 查询包含任意比较运算符:!=、IS、IS NOT、>、>=、<、<=
      • 查询指定与某项目相关的字段和值(如版本、组件和自定义字段),并且该项目未明确包含在查询中(如 fixVersion = "4.0",没有 AND project=JRA)。这对于自定义字段而言尤其棘手,因为它们可以基于项目/事务类型进行配置。经验法则就是,如果无法按基本搜索格式创建查询,则不能从高级搜索转换为基本搜索。
  2. 输入 JQL 查询。在您键入时,JIRA 将根据查询的上下文提供一系列“自动完成”建议。请注意,自动完成建议只包括前 15 个匹配,并按字母顺序显示,因此,如果找不到匹配项,您可能需要输入更多文本。

    • 您的管理员可能已禁用 JIRA 实例的“JQL 自动完成”功能。
    • 函数参数不提供自动完成建议。
    • 不是所有字段都提供自动完成建议。查看fields参考,以弄清哪些字段支持自动完成。
  3. 按 Enter 键或单击  以运行查询。搜索结果将在事务导航器中显示。

了解高级搜索

阅读以下主题,以了解如何充分利用高级搜索:

构建 JQL 查询

JQL 中的简单查询(又称为“子句”)包含一个字段,后跟一个运算符以及一个或多个函数。例如:

project = "TEST"

此查询将查找“TEST”项目中的所有事务。它使用了“project”字段、EQUALS 运算符以及 "TEST" 一值。

更复杂的查询可能如下所示:

project = "TEST" AND assignee = currentuser()

此查询将查找“TEST”项目中经办人为当前登录用户的所有事务。它使用了“project”字段、EQUALS 运算符"TEST"一值、“AND”关键词和“currentuser()”函数。

有关字段、运算符、关键词和函数的更多信息,请参见下文的“参考”部分

设置运算符的优先级

您可以在复杂 JQL 语句中使用括号,来强制排定运算符的优先级。

例如,如果要查找“SysAdmin”项目中所有已解决的事务,以及当前指派给系统管理员 (bobsmith) 的所有事务(任何状态,任何项目),则可以使用括号来强制排定查询中布尔运算符的优先级,即

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

请注意,如果不使用括号,则语句将从左到右求值。

您也可以使用括号来对子句分组,以便将 NOT 运算符应用于子句组。

受限单词和字符

保留字符

JQL 有一系列保留字符:

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

如果您希望在查询中使用这些字符,则需要执行以下操作:

  • 用引号包围它们(您可以使用单引号 (') 或双引号 ("));
    此外,如果您正在搜索某文本字段,而字符位于文本搜索的保留字符列表中,
  • 则在它们之前使用两个反斜杠。

例如:

  • 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 Field、Text Field、Read-only Text Field)。

有关更多信息,请参见文本字段的搜索语法。 

参考

 说明参考
字段JQL 中的字段是指表示 JIRA 字段(或 JIRA 中已定义的自定义字段)的单词。

字段参考页面 

运算符JQL 中的运算符是一个或多个符号或单词,它可将其左侧字段的值与右侧的一个或多个值(或函数)进行比较,从而使子句仅返回比较结果为真的那些事务。  一些运算符可能会使用 NOT 关键词。

运算符参考页面

关键词

JQL 中的关键词是指可执行(或属于)以下任意操作的单词或短语:

  • 将两个或多个子句连接在一起以形成复杂的 JQL 查询
  • 改变一个或多个子句的逻辑
  • 改变运算符的逻辑 
  • 在 JQL 查询中有明确的定义
  • 执行可改变 JQL 查询结果的特定函数。

关键字参考页面

函数

JQL 中的函数显示为一个字,后跟括号,其中可能包含一个或多个显式值或 JIRA 字段。

函数对括号中的特定 JIRA 数据或函数内容执行计算,以使函数仅返回真值结果,进而使得调用该函数的子句也返回真值的结果

函数参考页面

运行已保存的搜索

使用高级搜索时,已保存的搜索(请参见将搜索另存为过滤器)显示在左侧面板中。如果左侧面板未显示,请将鼠标悬停在屏幕左侧,使之显示出来。

要运行过滤器,如 My Open Issues,只需单击它即可。系统将设置高级搜索的 JQL,并显示搜索结果。

后续步骤

阅读以下相关主题:

  • No labels