我想对文本字段及其部分内容执行简单搜索,但我不知道开始。我基本上想要人们对“包含搜索”的期望。如果我在
issue
中搜索 345
,我想要这样的结果:
123456
234567
345678
...
在 JQL 中,这将是查询
issue ~ "*345*"
的结果,但 *
不允许作为通配符查询中的第一个字符。有没有一种简单的方法可以获得这个结果,最好是使用 JQL 查询?
目前无法在 JIRA 中搜索 contains 操作。如文本字段的搜索语法中所述,JIRA 支持词干提取:
由于 JIRA 无法搜索包含部分单词、单词的问题 “词干提取”允许您根据搜索结果检索问题 单词的“根”(或“词干”)形式,而不需要完全匹配 这些词的具体形式。检索到的问题数 基于词干词的搜索通常会更大,因为任何 包含源自同一词根的单词的其他问题 也会在搜索结果中检索到。
这意味着,您可以搜索某个单词的共同词根,但不能搜索它的任意部分。
官方 JIRA bug tracker 中存在一个问题:允许搜索单词的一部分(前缀/子字符串搜索),这描述了为什么无法实现:
Lucene 不支持前缀搜索。
作为解决方法,建议使用 JIRA 的 Script Runner 插件:
issueFunction in issueFieldMatch("project = JRA", "description", "ABC\\d{4}")
请参阅IssueFieldMatch此处。
另一个可以执行正则表达式 jql 的插件是 JQL Search Toolkit。
在
Summary
字段中按“345”子字符串过滤问题:
summary ~ "345"
在
Description
字段中按“345”子字符串过滤问题:
description ~ "345"
自 2019 年起,可以按照 OP 的要求使用通配符进行搜索。
例如查找问题所在
issueType = Epic
AND fixVersion ~ "Release_to_includ*"
AND fixVersion !~ "Release_to_exclud*"
对于更复杂的(RegEx 支持的)字符串过滤,请参阅 grundic 的答案(利用 ScriptRunner)。