Liste tous les champs dans un index elasticsearch?
Comment puis-je obtenir une liste de tous les champs qui sont présents dans un index (c'est à dire les champs qui se produisent dans les documents indexés, et pas seulement dans le mapping)?
source d'informationauteur ejain | 2014-04-30
Vous devez vous connecter pour publier un commentaire.
De départ avec 1,3 vous avez le _field_names méta-champ.
Explication:
Ne pense pas qu'il existe un moyen de faire exactement cela. Mais depuis tout à l'index automatiquement obtient jeté dans la cartographie, nous savons que le mappage contient au moins tous les champs de l'index. À partir de là, vous pouvez faire une boucle par le biais de de chaque domaine dans la cartographie et exécuter un compte sur le nombre de résultats dans l'index qui ont ce domaine. Si le nombre est supérieur à 0, alors que le champ existe; si le nombre est 0, alors que le champ ne fait pas partie de l'indice. Puisque nous savons que chaque champ dans l'index n'existe pas dans votre cartographie, ce qui devrait couvrir toutes les possibilités.
Quelques exemples d'appels de l'API:
Documentation:
GET
cartographieEn courant(5.2) de la version, vous pouvez utiliser l'API de mappage pour obtenir tous les noms de champ:
veuillez vous référer à la document officiel pour plus d'informations.
Je pourrais envisager la création d'un "elasticsearch-index-fieldlist" plugin, semblable à https://github.com/jprante/elasticsearch-index-termlistsi il n'y a vraiment pas de façon simple d'obtenir la liste des champs présents dans un index...