Co to jest zapytanie boolean w ElasticSearch

Co to jest zapytanie boolean w ElasticSearch

Boolean lub zapytanie bool w ElasticSearch to rodzaj wyszukiwania, który pozwala łączyć warunki za pomocą warunków logicznych.

ElasticSearch przeszuka dokument w określonym indeksie i zwróci wszystkie rekordy pasujące do kombinacji klauzul logicznych.

Korzystając z zapytań logicznych, możesz filtrować w celu uzyskania bardziej szczegółowych parametrów, umożliwiając uzyskanie bardziej precyzyjnych wyników.

W tym artykule przyjrzymy się, jak użyć czterech klauzul logicznych dostępnych w ElasticSearch: Must, Must_not, powinien i filtruje.

Ogólna składnia

Ogólna składnia zapytania logicznego używanego w ElasticSearch to:

Pobierz _Search

"zapytanie":
„Bool”:
"musieć": [

],
"nie możesz": [

],
"powinien": [

],
„Filtr”: [

]

Nie musisz łączyć wszystkich logicznych wydarzeń w jednym zapytaniu. Możesz użyć każdego jako samodzielnej jednostki.

Boolean musi

Powiedzmy, że masz indeks zawierający blogi. Możemy pobrać dokumenty, w których system operacyjny jest komputerem systemu Windows. Poniżej znajduje się przykładowe zapytanie:

Get /kibana_sample_data_logs /_search

"zapytanie":
„Bool”:
"musieć": [
"termin":
"maszyna.OS ":
„Wartość”: „wygrana”


]


Jak pokazano w odpowiedzi przykładowej, powyższy wynik powinien zwrócić wartości, w których system operacyjny jest systemem Windows.

Boolean must_not

Podobnie możemy użyć wystąpienia must_not, aby usunąć termin, w którym system operacyjny jest systemem Windows.

Weźmy przykładowe zapytanie poniżej:

Get /kibana_sample_data_logs /_search

"zapytanie":
„Bool”:
"nie możesz": [
"termin":
"maszyna.OS ":
„Wartość”: „wygrana”


]


To zapytanie filtruje wszystkie rekordy, w których maszyna.OS to komputer z systemem Windows. Poniżej znajduje się przykład:

Filtr boolejski

Filtr Boolean usunie wszystkie dokumenty, które nie pasują do określonego warunku.

Na przykład możemy filtrować dzienniki, w których liczba bajtów jest większa niż 1000.

Możemy uruchomić zapytanie, jak pokazano poniżej:

Get /kibana_sample_data_logs /_search

"zapytanie":
„Bool”:
„Filtr”: [
"zakres":
„bajty”:
„GTE”: 10000


]


Odpowiedź powinna zawierać tylko dokumenty, w których liczba bajtów jest większa niż wartość ustalona.

Przykładowa odpowiedź:

Możesz także połączyć filtr z innymi występami logicznymi. Na przykład najpierw szukamy dopasowania dokumentów, w których system operacyjny jest wygrany, a następnie filtruje liczbę bajtów większych niż 10000.

Pobierz kibana_sample_data_logs/_search

"zapytanie":
„Bool”:
"musieć": [
"termin":
"maszyna.OS ":
„Wartość”: „wygrana”


],
„Filtr”: [
"zakres":
„bajty”:
„GTE”: 10000


]


W takim przypadku najpierw pobieramy dokumenty, w których system OS zawiera termin „wygrana”. Następnie używamy wyników i filtru dla liczby bajtów większych niż 10000.

Powstałe dokumenty będą podobne do tego pokazanego poniżej:

Boolean powinien

Ostatnim booleanem, którego można użyć. Powinny być ściśle podobne do konieczności, ale jest mniej surowe.

Pobierz kibana_sample_data_logs/_search

"zapytanie":
„Bool”:
"powinien": [
"mecz":
"maszyna.OS „:„ OSX ”

]


Przykład powinien zwrócić rekordowy ciąg „OSX” pojawia się w polu systemu operacyjnego.

Wniosek

W tym artykule nauczyłeś się pracować z zapytaniem boolean w ElasticSearch i filtruj wyniki w oparciu o określone warunki.