Vai al contenuto
100% locale

Generatore di query Elasticsearch

Trasforma un elenco di condizioni campo/operatore/valore in una query bool Elasticsearch.

Uscita

Generatore di query Elasticsearch

Incolla un elenco di condizioni e questo strumento assembla una richiesta di ricerca Elasticsearch completa: una query bool con rami must, should, must_not e filter, più ordinamento, impaginazione e aggregazione facoltativa. È perfetto per chi scrive query manualmente in Kibana Dev Tools, un client REST o il livello di ricerca di un'applicazione, e preferirebbe descrivere le condizioni piuttosto che riscrivere ogni volta l'impalcatura JSON.

Ogni condizione è una riga nel campo Condizioni: un ramo facoltativo (must, should, must_not, filter), il nome del campo, un tipo di condizione facoltativo (term per una corrispondenza esatta, match per la ricerca full-text, range per confronti, exists per verificare che un campo sia presente) e un valore, separati da punto e virgola. "filter price range 100..500" crea una clausola range; "should title match wireless headphones" effettua una ricerca full-text su una frase; "must email exists" verifica che il campo sia impostato. Ometti il tipo e Tipo di condizione predefinito lo completa; ometti il ramo e Ramo predefinito fa lo stesso, così un elenco veloce come "status active; category electronics" produce comunque una query valida.

Il pannello delle opzioni copre il resto di una vera richiesta di ricerca: Campo di ordinamento e ordine aggiungono una clausola sort, Dimensione pagina e Offset controllano la paginazione from/size, e Aggregazione attiva un bucket terms o date_histogram nel campo che scegli. Evidenzia corrispondenze aggiunge un blocco highlight per qualsiasi condizione match, e Versione del linguaggio di query alterna track_total_hits, disponibile solo da Elasticsearch 7 in poi.

Tutto viene eseguito nel tuo browser: le condizioni che digiti e la query risultante non vengono mai caricate da nessuna parte. Copia il risultato direttamente in Kibana Dev Tools o in un corpo di richiesta, scaricalo come file .txt, o invia l'output di nuovo all'input per continuare a perfezionarlo.

FAQ

Come scrivo una condizione?
Una riga per condizione, separate da punto e virgola: un ramo facoltativo, il nome del campo, un tipo di condizione facoltativo, poi il valore, ad esempio "must status term active; filter price range 100..500".
Cosa significano term, match, range e exists?
term corrisponde esattamente a un campo, match cerca full-text, range confronta un campo con i limiti (scrivi "min..max", "min..", "..max", o ">=5"), e exists verifica semplicemente che il campo è presente, nessun valore necessario.
Cosa succede se ometto il ramo o il tipo?
Le opzioni Ramo predefinito e Tipo di condizione predefinito compilano qualsiasi parte omessa da una riga, quindi una semplice riga "campo valore" produce comunque una condizione valida.
La query funziona con tutte le versioni di Elasticsearch?
La query bool, ordinamento, impaginazione, aggregazioni e evidenziazione sono stabili da Elasticsearch 6. L'opzione Versione del linguaggio di query cambia un solo dettaglio: track_total_hits, introdotto in Elasticsearch 7 e omesso per una query 6.x.
I miei dati di query vengono caricati da qualche parte?
No. La query viene creata interamente nel tuo browser dalle condizioni e opzioni che inserisci: nulla viene inviato a un server.