跳轉到
版本 v1.0.25

OpenSearch 任務

這頁能幫你做什麼

OpenSearch 任務讓你在工作流程 (Workflow) 步驟中,對 OpenSearch 叢集送出查詢或管理請求,把結果帶進後續步驟。常見情境:

  • 對索引文件做全文搜尋、布林條件查詢或排序。
  • 執行聚合分析,產生統計與趨勢。
  • 查詢與分析存放在 OpenSearch 的日誌資料。
  • 新增、更新或管理索引內容。

開始前

這個任務需要一個 OpenSearch 類型的連結器 (Connector),裡面存放叢集連線資訊。請先到 連結器資源頁 建立好再回來選用。

操作步驟

  1. 新增一個 OpenSearch 任務節點,點選它開啟右側設定表單(如何新增請見 任務使用指南)。

    OpenSearch 任務設定面板

  2. 在「名稱」填步驟名稱。

  3. 在「連結器」選擇前面建好的 OpenSearch 連結器。這個欄位是下拉選單()+右側一顆鉛筆鈕(:點欄位本體會展開一般下拉清單;點鉛筆鈕會開啟含搜尋框的資源選擇對話框,在對話框選完要按右上角的「儲存」才會套用。選取時請點該列「名稱」以外的任一格(或列前面的圓鈕)——點「名稱」會在新分頁開啟該連結器的詳細頁,不會選取它(見資源挑選欄位)。
  4. 在「方法」選 HTTP 方法(常用 GETPOST)。
  5. 在「網址路徑」填要查詢的索引與動作路徑,例如 /my_index/_search
  6. 在「主體」用 JSON 寫查詢內容(查詢條件、排序、聚合等)。這個欄位的「JSON」開關預設就是開啟,一打開節點就是 JSON 編輯器,直接打字即可。
  7. 視需要展開「進階任務設定」調整標頭、參數、連線快取與逾時。

    OpenSearch 任務展開「進階任務設定」後的欄位

  8. 設定「下一個狀態」,視需要填「附註」,再用「測試任務」按鈕()試跑。

完整欄位說明

下表只列 OpenSearch 任務特有的欄位。名稱、附註、下一個狀態、輸入與輸出、錯誤處理等共用分區,請見 任務通用設定

設定分頁(基本欄位)

欄位 必填 預設 說明
連結器 選擇要連線的 OpenSearch 連結器資源。欄位是下拉選單+右側鉛筆鈕,點鉛筆會開啟資源選擇對話框(含搜尋框、清單、 重新載入、 新增,以及「取消/儲存」兩顆按鈕),只列 OpenSearch 類型的連結器;選完要按「儲存」。連結器也用來安全存放請求標頭裡的敏感資訊——直接填在「HTTP 標頭」欄位的值會以明文儲存。也可切換成從工作流程輸入動態帶入。建立方式見 連結器資源頁
方法 GET OpenSearch 請求的 HTTP 方法,可選 GETPOSTPUTPATCHDELETEHEADOPTIONS。依查詢方式選擇,搜尋多用 GETPOST
網址路徑 /my_index/_search 要查詢哪一個索引、做哪一種動作。OpenSearch 的資料按「索引 (index)」分組(可以想成資料庫的資料表),每個動作有固定的路徑寫法:/索引名稱/_search 表示「在這個索引裡搜尋」。所以 /products/_search 就是「搜尋 products 這個索引」。索引名稱要問維護 OpenSearch 的同事,或在 OpenSearch 端查看;_search 這種底線開頭的字是 OpenSearch 固定的動作名稱,照抄即可。
主體 {"query": {"match_all": {}}, "size": 10} 以 JSON 描述查詢邏輯,例如布林條件、排序規則或聚合分析。這個欄位的「JSON」開關預設已開啟(畫面上 JSON 亮、JSONPath 灰),所以一開始就是 JSON 編輯器,不需要自己去切;若要整包從上一步的輸出帶入,改開「JSONPath」開關(路徑寫法見 JSONPath 語法)。

進階任務設定(摺疊區塊)

展開設定分頁底部的「進階任務設定」可看到下列 OpenSearch 特有欄位:

欄位 必填 預設 說明
HTTP 標頭 空的「鍵/值」表格 要附加到請求的自訂 HTTP 標頭,例如內容類型或驗證。是一張「」表格,按 逐列新增。需隱藏敏感資訊時建議改放在連結器的標頭設定(填在這裡的值會以明文儲存)。把滑鼠移到欄位上可切換成 JSON 輸入。
參數 空的「鍵/值」表格 OpenSearch 的請求查詢參數,例如逾時、排序、欄位過濾或結果數量限制(如 sizefromsort)等,用來調整搜尋行為。同樣是「」表格,按 逐列新增;把滑鼠移到欄位上可切換成 JSON 輸入。完整參數請參考 OpenSearch 官方 API 文件。
使用快取連線 開啟 開關。開啟(預設)會重用快取的 OpenSearch 連線以提升效率;關閉後每次執行都會重新建立連線。
逾時 30 請求的最長等待秒數,超過未回應就中斷。範圍 1 至 120 秒。

Note

「使用快取連線」與「逾時」屬於連線層級的調校選項,一般情況維持預設即可,遇到連線不穩或長查詢再調整。

實際範例與預期結果

設定內容:

  • 連結器:選一個 OpenSearch 連結器
  • 方法:POST
  • 網址路徑:/products/_search
  • 主體:$.search_query(從輸入帶入查詢)

工作流程輸入:

{
  "search_query": {
    "query": {
      "bool": {
        "must": [{ "match": { "category": "electronics" } }],
        "filter": [{ "range": { "price": { "lte": 1000 } } }]
      }
    },
    "size": 5,
    "sort": [{ "price": "asc" }]
  }
}

測試輸出(OpenSearch 的原始回應放在 response):

{
  "errors": null,
  "action_type": "opensearch_action",
  "response": {
    "took": 12,
    "hits": {
      "total": { "value": 156 },
      "hits": [
        {
          "_index": "products",
          "_id": "prod-123",
          "_score": 4.2,
          "_source": { "name": "無線鍵盤", "price": 49.99 }
        }
      ]
    }
  }
}

Note

輸出以後端實際回傳為準:查詢回應放在 responseaction_type 固定為 opensearch_action。後續步驟可用 JSONPath 取值,例如 $.response.hits.hits[*]._source

下一步