Samouczek zapytań o zasięg Elasticearch

Samouczek zapytań o zasięg Elasticearch
W ElasticSearch możemy uzyskać wyniki dokumentów, które pasują do określonego zakresu za pomocą zapytania zakresu.

W tym przewodniku nauczysz się definiować parametr zasięgu w swoim zapytaniu za pomocą wyrażeń logicznych, takich jak większe niż, mniej niż i więcej.

Zapytanie zakresu elasticsearch: podstawowe użycie

Aby określić określony zakres w zapytaniu, możemy użyć parametru zakresu, a następnie pola i warunków do sprawdzenia.

Weź pytanie poniżej, które zwraca dokumenty, w których pole AVGTickEprice jest większe niż 600 i mniej niż 800

Get /kibana_sample_data_flights /_search

"zapytanie":
"zakres":
„AvgticketPrice”:
„GTE”: 600,
„LTE”: 800



Poniżej znajduje się przykładowe wyniki:

Zrozumienie zapytania

W powyższym przykładzie ustawiamy zakres w zapytaniu. Słowo kluczowe zasięgu wymaga parametru pola, który definiuje pole do wyszukiwania.

Następnie kontynuujemy definiowanie parametru pola. Są to warunki logiczne, takie jak:

  1. GT - Większe niż
  2. GTE - większe lub równe
  3. LT - mniej niż
  4. LTE - mniej niż lub równy

Zapytanie o zasięg czasu

Jeśli pole, które chcesz wyszukać, jest datą typu, możesz użyć powyższych warunków, a następnie datę matematyki zdefiniowanej w poniższym zasobie:

Data daty elasticearch Data matematyki

Rozważ następującą wartość, która wykorzystuje parametr TIME_ZONE do konwersji czasu na wartość UTC i wyszukuje zakres.

Get /kibana_sample_data_flights /_search

"zapytanie":
"zakres":
"znak czasu":
„Time_zone”: „+03: 00”,
„GTE”: „2021-10-14T05: 22: 14”,
„LTE”: „Teraz”



Powyższe zapytanie powinno zwrócić dokumenty, w których znacznik czasu jest większy niż 2021-10-14 o 05:22:14.

Oto przykładowe wyniki:

NOTATKA: Time_zone nie wpływa na parametr teraz.

Lepszy niż

Nie musisz łączyć warunków, takich jak większe niż i mniej niż; Możesz użyć indywidualnego zakresu, jak pokazano w poniższym przykładzie:

Get /kibana_sample_data_flights /_search

"zapytanie":
"zakres":
„DistanceMiles”:
„GTE”: 10000



Powyższy przykład zwraca dokumenty, w których odległości są większe niż 10000.

Odpowiedź jest poniżej:

Boolean

Aby sprawdzić zakres, w którym typ pola jest wartością logiczną, możesz użyć LTE lub GTE. Na przykład, aby uzyskać dokumenty dotyczące anulowanych lotów, możemy uruchomić żądanie jako:

Get /kibana_sample_data_flights /_search

"zapytanie":
"zakres":
"Odwołany":
„GTE”: True



W powyższym przykładzie przekazujemy zakres, aby sprawdzić jako boolean true.

Wyniki są jak pokazane:

Zamknięcie

W tym przewodniku nauczyłeś się korzystać z zapytania zakresu w ElasticSearch do filtrowania wyników, które pasują do określonego zakresu.