Vi kan imidlertid bruke filtre for å begrense og maksimere de aktuelle dokumentene som er returnert fra en spørring.
Denne guiden vil lære å bruke forhold i en Elasticsearch -spørring for å filtrere ut mer presise spørringsresultater.
Filtrer etter termin
Vi kan bruke begrepet spørring for å filtrere ut resultater i en spørring. For eksempel filtrerer spørringen nedenfor dokumenter der bynavnet er New York.
Få /kibana_sample_data_ecommerce /_search
"spørring":
"bool":
"Filter": [
"begrep":
"Geoip.City_name ":" New York "
]
I eksemplet på spørringen ovenfor bruker vi et boolsk filter for å søke etter dokumenter som samsvarer med bytnavnet som “New York.”
Eksempelets resultat for dette er:
Flere vilkår
Du kan også matche dokumenter som samsvarer med to eller flere vilkår. Vi kan for eksempel spørre om poster der typen = orden og region = "New York"
Få /kibana_sample_data_ecommerce /_search
"spørring":
"bool":
"Filter": [
"begrep":
"Type": "Bestill"
,
"begrep":
"Geoip.Region_navn ":" New York "
]
I et slikt eksempel er både typen og geoip.Region_navnfelt må evaluere tro mot det søkte begrepet.
Eksempel Resultat:
Rekkeviddefilter
For å filtrere med en numerisk verdi, kan du bruke boolske forhold. For å filtrere for resultater der prisen på produktet er større enn 1000, kan vi for eksempel gjøre:
Få /kibana_sample_data_ecommerce /_search
"spørring":
"bool":
"Filter": [
"område":
"Produkter.base_price ":
"GTE": 1000
]
Ovennevnte spørring skal filtrere dokumentene der basen til varene er større enn eller lik 1000.
Her er noen eksempelresultater:
Filtrer etter setning
Anta at du bare husker en bestemt setning og ikke vil hente alle dokumentene i indeksen? Du kan bruke must og match_phrase for å begrense resultatene.
For eksempel, hva om vi bare ønsker å få produktene under menns kategori, men er usikre på alle de spesifikke typene? Vi kan kjøre et spørsmål som:
Få /kibana_sample_data_ecommerce /_search
"spørring":
"bool":
"må": [
"match_phrase":
"Produkter.Kategori ":" Men's "
]
I eksemplet over bruker vi den boolske must for å sikre at den matchede frasen samsvarer med den som er spesifisert.
Nedenfor er eksempel resultater:
Må ikke filtrere
Vi kan også bruke Must_not -filteret for å fjerne alle dokumenter som inneholder en spesifikk setning eller rekkevidde. For å ekskludere alle dokumentene der kjøpsdatoen er mandag, kan vi for eksempel gjøre:
Få /kibana_sample_data_ecommerce /_search
"spørring":
"bool":
"må ikke": [
"kamp":
"Day_of_week": "Mandag"
]
Eksempel Resultater Returdokumenter som ikke inneholder DAY_OF_WEEK som mandag.
Konklusjon
Denne guiden diskuterte filtrering av elasticsearch -resultater ved hjelp av boolsk betinget som rekkevidde, must og mer.