Přeskočit na obsah
100% lokálně

Tvůrce elasticsearch dotazů

Převeď seznam podmínek s polem, operátorem a hodnotou na elasticsearch bool dotaz.

Výstup

Tvůrce elasticsearch dotazů

Vložte seznam podmínek a tento nástroj vytvoří kompletný elasticsearch search request: bool dotaz s větvemi must, should, must_not a filter, plus řazení, stránkování a volitelná agregace. Jde o ideální nástroj pro každého, kdo ručně píše dotazy do Kibana Dev Tools, REST klienta nebo vyhledávací vrstvy aplikace a raději by popsal podmínky než pokaždé přepisovat JSON struktury.

Každá podmínka je jeden řádek v poli Podmínky: volitelná větev (must, should, must_not, filter), název pole, volitelný typ podmínky (term pro přesné shody, match pro fulltextové vyhledávání, range pro porovnávání, exists pro kontrolu přítomnosti pole) a hodnota — oddělené středníky. "filter price range 100..500" vytvoří range klauzuli; "should title match wireless headphones" vytvoří fulltextové vyhledávání na frází; "must email exists" ověří, že je pole nastaveno. Pokud vynecháte typ, Výchozí typ podmínky ho doplní; pokud vynecháte větev, Výchozí větev ji doplní, takže i rychlý seznam jako "status active; category electronics" vytvoří platný dotaz.

Panel voleb pokrývá zbytek skutečného search requestu: Pole pro řazení a Pořadí řazení přidají sort klauzuli, Počet výsledků a Posun kontrolují from/size stránkování, a Agregace zapne terms nebo date_histogram bucket přes zvolené pole. Zvýraznit shody přidá highlight blok pro match podmínky a Verze jazyka dotazu přepíná track_total_hits dostupný pouze od Elasticsearch 7 výše.

Všechno běží v tvém prohlížeči — podmínky, které napíšeš, a dotaz, který vznikne, se nigde nenahrávají. Zkopíruj výsledek přímo do Kibana Dev Tools nebo request body, stáhni si jej jako .txt soubor, nebo pošli výstup zpět na vstup aby sis s ním pokračoval v úpravách.

Časté dotazy

Jak napíšu podmínku?
Jeden řádek na podmínku, oddělené středníky: volitelná větev, název pole, volitelný typ podmínky, pak hodnota — například "must status term active; filter price range 100..500".
Co znamenají term, match, range a exists?
term se shoduje s polem přesně, match prohledává fulltext, range porovnává pole s hranicemi (napište "min..max", "min..", "..max" nebo ">=5"), a exists jen zkontroluje, zda je pole přítomné — bez hodnoty.
Co se stane, když vynechám větev nebo typ?
Výchozí větev a Výchozí typ podmínky volbě doplní tu část, kterou řádek vynechává, takže i jednoduchý řádek "pole hodnota" stále vytvoří platnou podmínku.
Funguje dotaz se každou verzí Elasticsearch?
Bool dotaz, řazení, stránkování, agregace a zvýraznění jsou stabilní od Elasticsearch 6. Volba Verze jazyka dotazu mění jen jeden detail: track_total_hits, který byl představen v Elasticsearch 7 a je vynechán pro dotaz verze 6.x.
Jsou moje data dotazu nahrána někde?
Ne. Dotaz se vytváří zcela v tvém prohlížeči z podmínek a voleb, které zadáš — nic se nepošle na server.