Я использую эту библиотеку в go https://pkg.go.dev/github.com/elastic/go-elasticsearch/esapi#CatIndicesRequest для запросов от Elasticsearch.
У меня есть несколько примеров запросов, но я ищу метод API для получения всего индекса из кластера Elasticsearch. Но я не могу найти тот, который я мог бы использовать из их документа. Кто-нибудь знает, как лучше всего получить весь индекс? как http API _cat/indices
Я имею в виду, как получить его через библиотеку go lang
Вот рабочий пример:
package main
import (
"context"
"fmt"
"github.com/elastic/go-elasticsearch/v7"
"github.com/elastic/go-elasticsearch/v7/esapi"
)
func main() {
cfg := elasticsearch.Config{
Addresses: []string{
"http://localhost:9243",
},
Username: "foo",
Password: "bar",
}
es, err := elasticsearch.NewClient(cfg)
if err != nil {
panic(err)
}
res, err := esapi.CatIndicesRequest{Format: "json"}.Do(context.Background(), es)
if err != nil {
return
}
defer res.Body.Close()
fmt.Println(res.String())
}
Вы можете настроить CatIndicesRequest
, чтобы отформатировать вывод для вашего случая.
Например, если вы используете CatIndicesRequest{Pretty: true, Human: true}
. Он вернет что-то вроде этого:
[200 OK] green open .ent-search-actastic-workplace_search_accounts_v16 yvaDvj9RTMOoWqIpKdC_kw 1 1 1 0 12.1kb 6kb
green open .ent-search-workplace-search-content-events-ecs-ilm-logs-production-2022.01.23-000003 1D1BagTFQ6ypoZh2RdoUhQ 1 1 0 0 416b 208b
green open .ent-search-actastic-workplace_search_search_groups_v4-name-unique-constraint b_FRbLWJQfqXXxyTdcU2cQ 1 1 1 0 7kb 3.5kb
green open .ent-search-actastic-crawler_crawl_requests_v4 kaUWb7YlTEeFH-Gcpz50qA 1 1 0 0 416b 208b
green open .ent-search-api-ecs-ilm-logs-production-2022.03.09-000016 EKZZOtqOR_e8pOztXsLU1g 1 1 0 0 416b 208b
Непонятно, что
/_cat/indices
не предоставляет того, что вам нужно.