J'ai mon cluster et je veux connaître tous les noms d'index et de types qu'il contient. J'utilise Sense.
curl -XGET 'http://localhost:9200/_cat/indices?v'
vous donnera tous les index.
curl -XGET 'http://localhost:9200/_mapping?pretty=true'
vous donnera les types de documents dans ces index, ainsi que leurs correspondances.
La réponse de yvespeirsman est correcte, mais si vous souhaitez uniquement voir les types d'index, vous pouvez utiliser jq pour obtenir une réponse plus compacte.
curl -s -XGET 'http://localhost:9200/_mapping' | jq 'to_entries | .[] | {(.key): .value.mappings | keys}'
Certains mappages sont trop volumineux pour utiliser efficacement le _mapping
pour analyser les types. Considérons plutôt un agrégation . Serait probablement beaucoup plus rapide. Pour les index:
curl -XGET "http://localhost:9200/_search" -d'
{
"aggs": {
"indicesAgg": {
"terms": {
"field": "_index",
"size": 200
}
}
},
"size": 0
}'
Et pour les types pour un index spécifique (ou pour obtenir tous les types dans tous les index, excluez simplement le nom de l'index {myIndex} dans l'URL):
curl -XGET "http://localhost:9200/myIndex/_search" -d'
{
"aggs": {
"typesAgg": {
"terms": {
"field": "_type",
"size": 200
}
}
},
"size": 0
}'
Je suis sûr que vous pourriez écrire un seul agg pour renvoyer les deux aussi.
Pour obtenir tous les mappages dans l'index:
GET /{index_name}/_search?size=50
{
"query": {
"match_all": {}
}
}