Przejdź do treści
100% lokalnie

Konstruktor zapytań elasticsearch

Zamień listę warunków z polem, operatorem i wartością na zapytanie elasticsearch bool.

Wynik

Konstruktor zapytań elasticsearch

Wstaw listę warunków a to narzędzie zbuduje pełne żądanie elasticsearch search: zapytanie bool z gałęziami must, should, must_not i filter, plus sortowanie, stronnicowanie i opcjonalną agregację. To idealne narzędzie dla każdego, kto ręcznie pisze zapytania do Kibana Dev Tools, klienta REST lub warstwy wyszukiwania aplikacji i woli opisać warunki niż za każdym razem przepisywać struktury JSON.

Każdy warunek to jeden wiersz w polu Warunki: opcjonalna gałąź (must, should, must_not, filter), nazwa pola, opcjonalny typ warunku (term dla dokładnych dopasowań, match dla wyszukiwania pełnotekstowego, range do porównywania, exists aby sprawdzić czy pole istnieje) i wartość — oddzielone średnikami. "filter price range 100..500" tworzy klauzulę range; "should title match wireless headphones" tworzy wyszukiwanie pełnotekstowe na wyrażeniach; "must email exists" sprawdza czy pole jest ustawione. Jeśli pominiesz typ, Domyślny typ warunku go uzupełni; jeśli pominiesz gałąź, Domyślna gałąź ją uzupełni, więc nawet szybka lista jak "status active; category electronics" tworzy prawidłowe zapytanie.

Panel opcji obejmuje resztę rzeczywistego zapytania search: Pole sortowania i Kolejność sortowania dodają klauzulę sort, Rozmiar strony i Przesunięcie kontrolują from/size stronnicowanie, a Agregacja włącza terms lub date_histogram bucket na wybranym polu. Wyróżnij dopasowania dodaje blok highlight dla warunków match i Wersja języka zapytania przełącza track_total_hits dostępny tylko od Elasticsearch 7 wzwyż.

Wszystko działa w twojej przeglądarce — warunki które napiszesz i zapytanie które z nich powstanie nigdy nie są wysyłane nigdzie. Skopiuj wynik bezpośrednio do Kibana Dev Tools lub request body, pobierz go jako plik .txt, lub wyślij wynik z powrotem na wejście aby kontynuować edycję.

Częste pytania

Jak napisać warunek?
Jeden wiersz na warunek, oddzielone średnikami: opcjonalna gałąź, nazwa pola, opcjonalny typ warunku, następnie wartość — na przykład "must status term active; filter price range 100..500".
Co oznaczają term, match, range i exists?
term dokładnie dopasowuje pole, match przeszukuje pełen tekst, range porównuje pole z granicami (napisz "min..max", "min..", "..max" lub ">=5"), a exists po prostu sprawdza czy pole istnieje — bez wartości.
Co się stanie jeśli pominę gałąź lub typ?
Domyślna gałąź i Domyślny typ warunku opcjach uzupełnią tę część którą wiersz pomija, więc nawet prosty wiersz "pole wartość" zawsze tworzy prawidłowy warunek.
Czy zapytanie działa z każdą wersją Elasticsearch?
Zapytanie bool, sortowanie, stronnicowanie, agregacje i wyróżnianie są stabilne od Elasticsearch 6. Opcja Wersja języka zapytania zmienia tylko jeden szczegół: track_total_hits, który został wprowadzony w Elasticsearch 7 i jest pominięty dla zapytań wersji 6.x.
Czy moje dane zapytania są przesyłane gdziekolwiek?
Nie. Zapytanie buduje się całkowicie w twojej przeglądarce na podstawie warunków i opcji które wprowadzisz — nic nie jest wysyłane na serwer.