Aller au contenu
Tout en local

Constructeur de requêtes Elasticsearch

Transforme une liste de conditions champ/opérateur/valeur en requête bool Elasticsearch.

Sortie

Constructeur de requêtes Elasticsearch

Collez une liste de conditions et cet outil assemble une requête de recherche Elasticsearch complète : une requête bool avec branches must, should, must_not et filter, plus tri, pagination et agrégation optionnelle. C'est parfait pour qui écrit des requêtes manuellement dans Kibana Dev Tools, un client REST ou la couche de recherche d'une application, et préférerait décrire les conditions plutôt que de réécrire chaque fois l'échafaudage JSON.

Chaque condition est une ligne du champ Conditions : une branche optionnelle (must, should, must_not, filter), le nom du champ, un type de condition optionnel (term pour correspondance exacte, match pour recherche en texte intégral, range pour comparaisons, exists pour vérifier qu'un champ est présent) et une valeur, séparés par des points-virgules. « filter price range 100..500 » crée une clause range ; « should title match wireless headphones » cherche une correspondance en texte intégral sur une phrase ; « must email exists » vérifie que le champ est défini. Omettez le type et Type de condition par défaut le remplit ; omettez la branche et Branche par défaut fait de même, ainsi une liste rapide comme « status active; category electronics » produit toujours une requête valide.

Le panneau d'options couvre le reste d'une vraie requête de recherche : Champ de tri et ordre ajoutent une clause sort, Taille de page et Décalage contrôlent pagination from/size, et Agrégation active un bucket terms ou date_histogram sur le champ de votre choix. Mettre en évidence les correspondances ajoute un bloc highlight pour toute condition match, et Version du langage de requête bascule track_total_hits, disponible uniquement à partir d'Elasticsearch 7.

Tout s'exécute dans votre navigateur : les conditions que vous tapez et la requête qui en résulte ne sont jamais envoyées nulle part. Copiez le résultat directement dans Kibana Dev Tools ou un corps de requête, téléchargez-le en fichier .txt, ou renvoyez la sortie à l'entrée pour continuer à l'affiner.

FAQ

Comment écris-je une condition?
Une ligne par condition, séparées par des points-virgules : une branche optionnelle, le nom du champ, un type de condition optionnel, puis la valeur, par exemple « must status term active; filter price range 100..500 ».
Que signifient term, match, range et exists?
term fait correspondre un champ exactement, match recherche en texte intégral, range compare un champ par rapport à des limites (écrivez "min..max", "min..", "..max", ou ">=5"), et exists vérifie simplement que le champ est présent, sans valeur nécessaire.
Que se passe-t-il si j'omets la branche ou le type?
Les options Branche par défaut et Type de condition par défaut complètent la partie qu'une ligne omet, donc une simple ligne « champ valeur » produit toujours une condition valide.
La requête fonctionne-t-elle avec chaque version d'Elasticsearch?
La requête bool, le tri, la pagination, les agrégations et la mise en évidence sont stables depuis Elasticsearch 6. L'option Version du langage de requête change un seul détail: track_total_hits, qui a été introduit dans Elasticsearch 7 et est omis pour une requête 6.x.
Mes données de requête sont-elles téléchargées quelque part?
Non. La requête est construite entièrement dans votre navigateur à partir des conditions et options que vous entrez, rien n'est envoyé à un serveur.