跳轉到

OpenSearch 任務

這頁能幫你做什麼

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

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

開始前

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

操作步驟

  1. 新增一個 OpenSearch 任務節點,點選它開啟右側設定表單。

    OpenSearch 任務設定面板

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

  3. 在「連結器」選擇前面建好的 OpenSearch 連結器。
  4. 在「方法」選 HTTP 方法(常用 GETPOST)。
  5. 在「網址路徑」填要查詢的索引與動作路徑,例如 /my_index/_search
  6. 在「主體」用 JSON 寫查詢內容(查詢條件、排序、聚合等)。
  7. 視需要展開「進階任務設定」調整標頭、參數、連線快取與逾時。

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

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

完整欄位說明

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

設定分頁(基本欄位)

欄位 必填 預設 說明
連結器 選擇要連線的 OpenSearch 連結器資源;點開後會跳出資源選擇對話框(含搜尋框、清單與「建立」按鈕),只列 OpenSearch 類型的連結器。也可切換成從工作流程輸入動態帶入。建立方式見 Connector 資源頁
方法 GET OpenSearch 請求的 HTTP 方法,可選 GETPOSTPUTPATCHDELETEHEADOPTIONS。依查詢方式選擇,搜尋多用 GETPOST
網址路徑 /my_index/_search 要查詢的索引或資源路徑,例如 /products/_search
主體 {"query": {"match_all": {}}, "size": 10} 以 JSON 描述查詢邏輯,例如布林條件、排序規則或聚合分析。可切換成 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

下一步