Elasticsearch Range Query Tutorial

Elasticsearch Range Query Tutorial
I Elasticsearch kan vi få resultatene av dokumenter som samsvarer med et bestemt område ved å bruke Range Query.

Gjennom denne guiden vil du lære å definere en rekkevidde -parameter i søket ditt ved hjelp av boolske uttrykk som større enn, mindre enn, og mer.

Elasticsearch Range Query: Grunnleggende bruk

For å spesifisere et spesifikt område i et søk, kan vi bruke rekkeviddeparameteren etterfulgt av feltet og forholdene for å sjekke.

Ta spørringen nedenfor som returnerer dokumentene der feltet AVGTICKETPRICE er større enn 600 og mindre enn 800

Få /kibana_sample_data_flights /_search

"spørring":
"område":
"AvgticketPrice":
"GTE": 600,
"LTE": 800



Nedenfor er eksemplet Retur Resultat:

Forstå spørringen

I eksemplet over setter vi rekkevidden i spørringen. Området nøkkelord krever feltparameteren, som definerer feltet for å søke.

Vi fortsetter deretter med å definere parameteren for feltet. Dette er boolske forhold som:

  1. GT - større enn
  2. GTE - større enn eller lik
  3. LT - mindre enn
  4. LTE - mindre enn eller lik

Spørring av et tidsrom

Hvis feltet du ønsker å søke er av typedato, kan du bruke ovennevnte betingelser etterfulgt av datoen matematikk definert i ressursen nedenfor:

Elasticsearch Date Math Docs

Tenk på følgende verdi som bruker TIME_ZONE -parameteren for å konvertere tiden til UTC -verdi og søker etter et område.

Få /kibana_sample_data_flights /_search

"spørring":
"område":
"tidsstempel":
"Time_zone": "+03: 00",
"GTE": "2021-10-14T05: 22: 14",
"LTE": "nå"



Ovennevnte spørring skal returnere dokumentene der tidsstempelet er større enn 2021-10-14 kl. 05:22:14.

Her er eksempelresultater:

MERK: TIME_ZONE påvirker ikke nå parameteren.

Større enn

Du trenger ikke å kombinere betingelsene som større enn og mindre enn; Du kan bruke et individuelt utvalg, som vist i eksemplet nedenfor:

Få /kibana_sample_data_flights /_search

"spørring":
"område":
"Distancemiles":
"GTE": 10000



Eksemplet over returnerer dokumentene der Distancemiles er større enn 10000.

Responsen er under:

Boolsk

For å se etter et område der felttypen er en boolsk verdi, kan du bruke LTE eller GTE. For å få dokumentene for kansellerte flyreiser, kan vi for eksempel kjøre en forespørsel som:

Få /kibana_sample_data_flights /_search

"spørring":
"område":
"Avbrutt":
"GTE": True



I eksemplet over passerer vi rekkevidden for å sjekke som en boolsk sann.

Resultatene er som vist:

Lukking

I denne guiden lærte du hvordan du bruker Range Query i Elasticsearch for å filtrere for resultater som samsvarer med et bestemt område.