首頁 >後端開發 >Golang >如何從 Golang 用戶端建立 ElasticSearch 策略

如何從 Golang 用戶端建立 ElasticSearch 策略

WBOY
WBOY轉載
2024-02-05 22:15:12985瀏覽

如何从 Golang 客户端创建 ElasticSearch 策略

問題內容

我正在嘗試從elastic golang 用戶端olivere 建立索引生命週期管理(ilm) 策略,以刪除超過3 個月的索引(使用「每日索引」模式)。像這樣的事情:

{
  "policy": {
    "phases": {      
      "delete": {
        "min_age": "90d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

我可以在庫的源代碼中看到這樣的結構:xpackilmputlifecycleservice,它具有以下字段:

type XPackIlmPutLifecycleService struct {
    client *Client

    pretty     *bool       // pretty format the returned JSON response
    human      *bool       // return human readable values for statistics
    errorTrace *bool       // include the stack trace of returned errors
    filterPath []string    // list of filters used to reduce the response
    headers    http.Header // custom request-level HTTP headers

    policy        string
    timeout       string
    masterTimeout string
    flatSettings  *bool
    bodyJson      interface{}
    bodyString    string
}

這是文件連結。然而,我有點困惑如何創建使用它來完成這項工作的策略,因為它似乎缺少一些欄位(例如 min_age 設定索引的 ttl)。透過此客戶端建立 ilm 策略的正確方法是什麼。


正確答案


可以參考測試程式碼!基本上你可以將 json 放入 body 欄位。

testPolicyName := "test-policy"

    body := `{
        "policy": {
            "phases": {
                "delete": {
                    "min_age": "90d",
                    "actions": {
                        "delete": {}
                    }
                }
            }
        }
    }`

    // Create the policy
    putilm, err := client.XPackIlmPutLifecycle().Policy(testPolicyName).BodyString(body).Do(context.TODO())

https://github.com /olivere/elastic/blob/release-branch.v7/xpack_ilm_test.go#l15-l31

#

以上是如何從 Golang 用戶端建立 ElasticSearch 策略的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除