JIRA - 高级搜索
Jira - 使用 JQL 进行高级搜索
Section titled “Jira - 使用 JQL 进行高级搜索”除了基本搜索过滤器,Jira 主要通过 Jira Query Language (JQL) 提供强大的高级搜索功能。JQL 是一种灵活且结构化的查询语言,允许您构建精确的查询,以在整个 Jira 实例中找到您所需的问题。掌握 JQL 是高效导航和管理问题的关键。
关于 JQL 和高级搜索的关键点:
- 结构化查询:JQL 使用包含字段(fields)、运算符(operators)、值(values)和关键字(keywords)的特定语法来定义搜索条件。
- Issue Navigator:JQL 查询结果显示在 Issue Navigator 中,它提供各种视图(例如,列表视图、详细视图)和排序选项。
- 导出选项:Issue Navigator 中的结果通常可以导出为 CSV、Excel(通过 XML/HTML)和 Word 等格式,具体取决于您的 Jira 配置和权限。
- 保存的过滤器和订阅:JQL 查询可以保存为“Filters”(过滤器)。这些过滤器可以重复使用,与其他用户或组共享,订阅以定期接收匹配问题的电子邮件通知,并用于填充 Jira Dashboards(仪表盘)上的小工具(gadgets)。
- 非 SQL:虽然 JQL 的语法可能类似于 SQL(例如,它使用
ORDER BY),但它不是数据库查询语言。JQL 对 Jira 的问题数据索引进行操作,并有其特定的函数和限制。例如,JQL 不支持GROUP BY以在查询本身中进行直接聚合;聚合通常由报告或使用保存的 JQL 过滤器的仪表盘小工具处理。
一个简单的 JQL 查询由一个 field、一个 operator,然后是一个或多个 values 或 functions 组成。例如,要查找键为“WFT”的项目中的所有问题:
project = "WFT"要访问高级搜索(JQL):
- 从 Jira 主导航菜单中导航到“Filters”或“Issues”,然后选择“Advanced issue search”(确切措辞可能有所不同,例如“Search issues”)。
- 如果您最初处于“Basic”搜索模式(带有下拉菜单和输入字段),查找切换到 JQL 模式的链接或按钮。这通常标记为“Switch to JQL”、“Advanced”或“JQL”。
理解 JQL 组件
Section titled “理解 JQL 组件”JQL 查询使用字段、运算符、值和关键字构建。
1. Fields(字段)
Section titled “1. Fields(字段)”JQL 中的“field”表示您可以查询的问题属性。Jira 有许多系统字段,也支持管理员创建的自定义字段。
常见的系统字段包括:
project:问题所属的项目。issueType:问题类型(例如,Bug、Story、Task)。status:问题在其工作流中的当前状态(例如,Open、In Progress、Resolved)。assignee:问题当前被分配给的用户。reporter:创建问题的用户。priority:问题的优先级级别(例如,High、Medium、Low)。resolution:问题关闭的原因(例如,Fixed、Won’t Fix)。created,updated,dueDate:与问题创建、最后更新和截止日期相关的日期字段。summary,description,comment:用于在问题内容中搜索的文本字段。labels:与问题关联的标签。fixVersion:问题计划或已经在哪个版本中修复。component:问题相关的项目组件。
当您在 JQL 编辑器中输入时,Jira 会为字段提供自动完成建议。例如,搜索具有特定键(key)的问题:
issueKey = "WFT-107"2. Operators(运算符)
Section titled “2. Operators(运算符)”运算符用于将字段的值与 JQL 子句右侧的一个或多个值或函数进行比较。它们定义了要满足的关系或条件。
常见的运算符包括:
- 相等:
=(等于),!=(不等于) - 比较:
>(大于),<(小于),>=(大于或等于),<=(小于或等于) - 用于数字、日期和版本。 - 成员资格:
IN(值是指定值之一),NOT IN(值不是指定值之一) - 文本匹配:
~(包含 - 用于模糊文本搜索),!~(不包含) - 存在性:
IS EMPTY(字段没有值,或为 null),IS NOT EMPTY(字段有值)
使用运算符的示例:
priority = Highstatus != Closedvotes >= 5summary ~ "authentication error"assignee IS EMPTY3. Values and Functions(值和函数)
Section titled “3. Values and Functions(值和函数)”值是您正在搜索的特定数据。它们可以是文本字符串(如果包含空格或保留字,需用引号括起来)、数字、日期或预定义的 Jira 实体(如状态或优先级)。
JQL 中的函数动态提供值。例如:
currentUser():表示当前登录的用户。now():表示当前日期和时间。membersOf("group_name"):表示指定 Jira 用户组的所有成员。
assignee = currentUser()dueDate < now()project = "Omega" AND status IN ("Open", "In Progress")4. Keywords(关键字)
Section titled “4. Keywords(关键字)”JQL 中的关键字用于组合多个子句、否定条件或对结果进行排序。
AND:组合两个子句;两者都必须为真。例:status = Open AND priority = HighOR:组合两个子句;至少一个必须为真。例:dueDate < now() OR dueDate IS EMPTYNOT:否定后续子句。例:NOT assignee = "jsmith"(或assignee != "jsmith")EMPTY:与IS或IS NOT一起使用,检查空字段。例:fixVersion IS EMPTYORDER BY:按一个或多个字段对搜索结果进行排序,可选择ASC(升序) 或DESC(降序)。例:project = "Omega" ORDER BY createdDate DESC, priority ASC
Jira 的 JQL 编辑器为关键字、字段、运算符和已知值提供自动完成功能,使构建有效查询更加容易。输入查询后,按 Enter 或点击搜索图标执行。有关所有 JQL 字段、运算符、关键字和函数的完整列表,请参阅官方 Atlassian Jira 文档。