Zapytanie o bool joint: musimy, powinni, must_not
Jeśli chcemy poprosić o coś podobnego do "content with BMW, ale not in tag", musimy użyć bool federated query.
Wspólne zapytanie będzie używać trzech słów kluczowych: musi, powinien, must_not.
Te trzy można zrozumieć w ten sposób
must: Dokument musi dokładnie spełniać warunki
should: powinien zawierać więcej niż jeden warunek, a jeśli przynajmniej jeden warunek zostanie spełniony, ten dokument spełni by
must_not:Dokument nie może spełniać tych kryteriów
Oficjalne wprowadzenie do strony internetowej:https://www.elastic.co/guide/cn/ ... bining-filters.html
Zapytanie DSL
match_all Zapytanie
Wszystkie dokumenty mogą być zapytaniami i jest to domyślne zdanie bez warunków zapytania.
To zapytanie jest często używane do łączenia filtrów. Na przykład musisz pobrać wszystkie skrzynki pocztowe i wszystkie dokumenty są takie same, więc otrzymujesz _score 1.
Zapytanie o dopasowanie
Zapytanie dopasowania to standardowe zapytanie, które jest używane niezależnie od tego, czy potrzebujesz pełnotekstowego zapytania, czy dokładnego zapytania.
Jeśli używasz match do zapytania do pola pełnego tekstu, analizator będzie analizował znaki zapytania przed samym zapytaniem:
Jeśli poda dokładna wartość w podpasowaniu, wyszukiwa Twoją wartość, gdy napotka liczbę, datę, boolean lub not_analyzed ciąg znaków:
Wskazówka: Podczas wyszukiwania dokładnie dopasowanego najlepiej używać instrukcji filtrów, ponieważ instrukcje filtrów cacheują dane.
Zapytanie dopasowania może wyszukiwać tylko dokładną wartość, która określa dokładne pole, a wystarczy podać poprawną nazwę pola, aby uniknąć błędów składniowych.
multi_match Zapytanie
multi_match zapytanie pozwala przeszukiwać wiele pól jednocześnie na podstawie zapytania dopasowania i wyszukiwać je jednocześnie w wielu polach:
Zapytanie bool
Zapytania bool są podobne do filtrowania bool i służą do łączenia wielu klauzul zapytań. Różnica polega na tym, że filtr bool może bezpośrednio podać, czy dopasowanie jest pomyślne, podczas gdy zapytanie bool oblicza _score (współczynnik korelacji) każdego klauzuli zapytania.
must:: 查询指定文档一定要被包含。 must_not:: Nie należy dołączać dokumentów do określonych zapytań.
should:: 查询指定文档,有则可以为文档相关性加分。
Następujące zapytanie pokaże, że pole tytułu zawiera "jak zarobić miliony", a pole "tag" nie jest oznaczone jako spam. Jeśli są oznaczone jako "oznaczone gwiazdką" lub mają datę publikacji przed 2014 rokiem, to te dopasowane dokumenty będą na wyższym poziomie niż podobne strony:
Wskazówka: Jeśli w zapytaniu bool nie ma klauzuli "musz", powinna być przynajmniej jedna klauzula "powinni". Ale jeśli istnieje klauzula konieczności, to zapytanie można wykonać także bez klauzuli potrzeby.
Zapytanie o karty dzikie
Użyj standardowych zapytań dzikich kart shell shell
Następujące zapytanie odpowiada dokumentom zawierającym W1F 7HW i W2F 8HW:
Na przykład następujące zapytanie o nazwę hosta odpowiada następującej dzikiej kartie powłoki:
zapytanie regexp
Załóżmy, że chcesz dopasować tylko kody pocztowe zaczynające się na W i następujące przez cyfry. Korzystanie z zapytań regexp pozwala pisać bardziej złożone wzorce:
To wyrażenie regularne określa, że wpis musi zaczynać się od W, następnie liczby od 0 do 9, a następnie jednego lub więcej innych znaków.
Poniższy przykład to wszystkie regularne starty z wxopen
Zapytanie o prefiks
Od jakiego znaku się zaczyna, możesz użyć prostszego przedrostka, jak w poniższym przykładzie:
Dopasowywanie fraz
Gdy musisz znaleźć kilka słów w bliskim pobliżu, używasz match_phrase zapytania:
Podobnie jak w przypadku zapytań match, match_phrase najpierw analizuje ciąg zapytania, aby stworzyć listę terminów. Będzie wyszukiwać wszystkie wpisy, Jednak zachowywane są tylko dokumenty zawierające wszystkie hasła wyszukiwania, a pozycje tych terminów powinny być sąsiadujące ze sobą. Zapytanie o frazę Szybki Lis nie będzie pasować Każda z naszych dokumentacji, ponieważ żadna nie zawiera szybkich i przylegających do siebie wpisów w ramkach. match_phrase zapytanie może być również zapisane jako zapytanie o dopasowanie o frazę typową:
|