Ich versuche, eine Index-Lifecycle-Management-Richtlinie (ILM) aus dem Elastic-Golang-Client Olivere zu erstellen, um Indizes zu löschen, die älter als 3 Monate sind (im Modus „Tagesindex“). Dinge wie diese:
{ "policy": { "phases": { "delete": { "min_age": "90d", "actions": { "delete": {} } } } } }
Ich kann eine Struktur wie diese im Quellcode der Bibliothek sehen: xpackilmputlifecycleservice, die die folgenden Felder enthält:
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 }
Hier ist der Dokumentationslink. Ich bin jedoch etwas verwirrt darüber, wie ich eine Strategie erstellen soll, um dies für die Arbeit zu nutzen, da einige Felder zu fehlen scheinen (z. B. min_age
Festlegen der TTL des Index). Was ist der richtige Weg, um eine ILM-Richtlinie über diesen Client zu erstellen?
kann sich auf den Testcode beziehen! Grundsätzlich können Sie JSON in das Body-Feld einfügen.
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
Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine ElasticSearch-Richtlinie über den Golang-Client. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!