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 /_searchNedenfor 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:
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 /_searchOvennevnte 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 /_searchEksemplet 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 /_searchI 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.