Maison >développement back-end >Golang >Comment créer une politique ElasticSearch à partir du client Golang

Comment créer une politique ElasticSearch à partir du client Golang

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBavant
2024-02-05 22:15:121017parcourir

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

Contenu de la question

J'essaie de créer une politique de gestion du cycle de vie des index (ilm) à partir du client Elastic Golang Olivere pour supprimer les index de plus de 3 mois (en utilisant le mode "index quotidien"). Des choses comme ça :

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

Je peux voir une structure comme celle-ci dans le code source de la bibliothèque : xpackilmputlifecycleservice, qui contient les champs suivants :

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
}

Voici le lien de documentation. Cependant, je ne sais pas comment créer une stratégie pour l'utiliser pour faire le travail, car il semble manquer certains champs (comme min_age définir le ttl de l'index). Quelle est la bonne façon de créer une politique ilm via ce client.


La bonne réponse


peut se référer au code du test ! Fondamentalement, vous pouvez mettre json dans le champ 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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer