iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
IT管理

每天利用 Jira 開單時,練習一個密技,應該不是薪水小偷吧!?系列 第 29

Day29 - 解析 JQL 讓 Automation 更進階 - 搜尋文字欄位的主要語法

  • 分享至 

  • xImage
  •  

大家還記得 JQL 句型結構中組合元素嗎?上述元素中,我們已經認識完畢了,分別為 Keywords、Operators、Fields 和 Functions。此外,我們也學習到,進階搜尋中使用 CONTAINS(〜)運算符號時,可以進行文字搜尋,例如summary~"windows*"。在支援的欄位上進行快速搜索和基本搜索時也可以進行文字搜索。

JQL 文字搜尋查詢條件查詢條件被分為詞彙和運算符號

今日分享

  1. JQL 文字搜尋詞彙類別
  2. JQL 文字搜尋進階運算符號
  3. 布林運算符號

JQL 文字搜尋詞彙類別

詞彙類型: 單詞和片語

  1. 單詞是單個詞,例如 "test" 或 "hello"。
  2. 片語是由雙引號包圍的一組詞,例如 "hello dolly"。

多個詞彙可以與布爾運算符結合,形成更複雜的查詢 (參見下文)

如果您結合多個詞彙而不指定任何布爾運算符,則它們將使用 AND 運算符結合

Jira 中的所有查詢詞彙都不區分大小寫


JQL 文字搜尋進階運算符號

Jira 中文字串欄位的搜尋語法可以使用各種運算符號和修飾符號。可使用包括:精確搜索(片語)、通配符搜索:? 和 *、模糊搜索:~ 、前綴和後綴搜索、鄰近搜索

1. 精確搜尋(片語):使用雙引號("")尋找片語的精確匹配。

  • 基本搜尋:

    • 在 Automation 的 JQL 使用中,都為進階搜尋,若為一般使用 Jira Board 的基本搜尋時,只需在搜尋欄位中輸入文字即可。例如:查找所有包含片語 Jira Software 的問題,只需在搜尋欄位中鍵入 "Jira Software",將找到包含完整片語 "Jira Software" 的問題。否則,搜尋將找到包含這兩個單詞但順序不等的所有問題 - 這將包括 Jira Software,但也可能包括 Jira is the best software!。
  • 進階搜尋(亦適用於 Automation JQL)除了需要用(""),還可使用反斜線(\)來逃脫每個引號。

    • 案例1:查找包含單詞 Jira 和 Software 的所有問題,順序不限。text ~ "Jira Software"
    • 案例2:查找包含片語 Jira Software 的所有問題。 text ~ "\"Jira Software\""
    • 案例3:查找包含 URL https://atlassian.com 的所有問題。 text ~ "\"https://atlassian.com\""
      註:案例2和3看到查詢包含兩對引號,其外層引號是為了符合 JQL 規則,與您的搜尋查詢無關。在執行搜尋後,Jira 在基本搜尋中會自動添加相同的引號。
  • 使用特殊字符創建短語:在以前的 Jira 版本中,您可以使用一些特殊字符將術語組合成短語,例如:Jira+Software 或 Jira/Software。這種情況不再適用,因為搜索機制已更改,忽略了周圍術語的特殊字符。


2. 萬用字元搜尋:Jira支援單個字元和多個字元的萬用字元搜尋。

  • 要執行單個字元的萬用字元搜尋,請使用 "?" 符號。例如:te?t 將找到 "text"或 "test" 。
  • 要執行多個字元的萬用字元搜尋,請使用 "*" 符號。例如:win* 將找到 "Windows"、"Win95" 或 "WindowsNT"。
  • 在詞的中間使用萬用字元搜索。例如:使用 "wi*95" 可以搜索到 Win95 或 Windows95 。
  • 萬用字元需要用引號括起來,因為它們是高級搜索中的保留字元。使用引號,例如 summary ~ "cha?k and che*"

3. 模糊搜尋:在單詞結尾使用波浪符 "~" 來尋找類似的字詞。
例如,roam~ 將找到 "foam" 和 "roams" 等類似的詞。
注意: 通過模糊搜索找到的詞將自動獲得0.2的增強係數。


4. 前綴和後綴搜尋:使用 * 作為萬用字元來搜尋單詞的部分匹配。
例如,要查找 MagicBox 問題,可以使用以下兩種搜索模式之一:

  • 前綴搜索:summary ~ "magic*"
  • 後綴搜索:summary ~ "*box"

5. 接近搜尋:在片語末尾使用波浪符 “~”來尋找特定距離內的單詞。
例如:在文件中尋找與 "atlassian" 和 "Jira" 相隔不超過 10 個單詞的字詞。請使用 "atlassian Jira"~10


6. 加權一個詞:請使用插入符號“^”符號和詞後面的加權因子(一個數字)。加權因子越高,該詞就越相關。

  • 通過加權,您可以通過提高該單詞的加權來控制文檔的相關性。
  • 例如,如果您正在搜索 atlassian Jira 並且您希望詞 “atlassian” 更具相關性,請使用插入符號^以及詞旁邊的加權因子 "atlassian^4 Jira" 這將使具有詞 atlassian 的文檔顯示得更相關。
  • 您還可以加權短語詞,例如: "atlassian Jira"^4 querying
  • 默認情況下,加權因子為 1。儘管如此,加權因子必須為正數,但可以小於 1(即0.2)。

布林運算符號 Boolean operators

使用 AND、OR、NOT、+ 和 - 來結合術語並定義搜索邏輯,且布林運算符必須全大寫(這樣我就可以理解為什麼有些 JQL 的連接詞是大寫了)。此外,特殊字符、保留詞和單詞變形可能會影響您的搜索結果,因此在構建搜索查詢時需要注意這些因素。以下來說明 AND、OR、NOT、+ 和 - 。

  1. AND:
  • AND運算符匹配文檔中任何位置存在的兩個詞。這相當於使用集合的交集。符號&&可以用來代替AND一詞。
  • 例如:要搜索包含“atlassian Jira”和“issue tracking”的文檔,請使用 "atlassian Jira" AND "issue tracking"
  1. OR:
  • 如果其中一個詞存在於文檔中,則會找到匹配的文檔。這相當於使用集合的聯集。符號||可以用來代替OR一詞。
  • 例如:要搜索包含“atlassian Jira”或僅包含“confluence”的文檔,請使用 "atlassian Jira" || confluence "atlassian Jira" OR confluence
  1. Required term: +
  • "+"或必需運算符要求在單個文檔的字段中,"+"符號後的詞必須存在。
  • 例如:要搜索必須包含“Jira”並可能包含“atlassian”的文檔,請使用 +Jira atlassian
  1. NOT
  • NOT運算符排除包含NOT後的詞的文檔。這相當於使用集合的差集。符號!可以用來代替NOT一詞。
  • 在多個字段上使用 NOT 運算符可能會返回包含指定的排除詞的結果。這是因為搜索查詢是依次在每個字段上執行的,並且每個字段的結果集合被合併以形成最終結果集合。因此,如果基於一個字段的搜索查詢匹配,但基於另一個字段失敗,則將在搜索結果集合中包含該問題。
  • NOT運算符不能僅用於一個詞。例如,NOT "atlassian Jira" 不會搜尋出結果。
  • 例如:要搜索包含“atlassian Jira”但不包含“japan”的文檔,請使用 "atlassian Jira" NOT "japan"
  1. Excluded term: -
  • "-"或禁止運算符排除包含“-”符號後詞的文檔。
  • 例如:要搜索包含“atlassian Jira”但不包含“japan”的文檔,請使用 "atlassian Jira" -japan
  1. 布林運算符號組合使用
  • 可以使用括號將子句分組為子查詢。如果您想要更進一步活用布林邏輯,例如要搜索錯誤和atlassian或Jira,請使用 bugs AND (atlassian OR Jira)。這樣可以消除任何混淆,並確保必須存在錯誤,而 atlassian 或 Jira 可能存在。
  • 請勿在搜索查詢的開頭使用分組字符'(',因為這將導致錯誤。例如,"(atlassian OR Jira) AND bugs"將發生錯誤。

以上是我今天的練習,明天~明天我就要來解析之前練習過的 Automation JQL 啦!


上一篇
Day28 - 解析 JQL 讓 Automation 更進階 - JQL Functions 函數是什麼?數長慎入
下一篇
Day30 - JQL 用於 Automation 實例設定 以及 30天文章鐵人賽回顧
系列文
每天利用 Jira 開單時,練習一個密技,應該不是薪水小偷吧!?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言