我正在嘗試從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中文網其他相關文章!