Maison > développement back-end > Golang > le corps du texte

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

WBOY
Libérer: 2024-02-05 22:15:12
avant
968 Les gens l'ont consulté

如何从 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": {}
        }
      }
    }
  }
}
Copier après la connexion

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
}
Copier après la connexion

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())
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal