Hva er boolsk spørsmål i Elasticsearch

Hva er boolsk spørsmål i Elasticsearch

Boolean, eller en bool -spørring i Elasticsearch, er en type søk som lar deg kombinere forhold ved hjelp av boolske forhold.

Elasticsearch vil søke i dokumentet i den spesifiserte indeksen og returnere alle postene som samsvarer med kombinasjonen av boolske klausuler.

Ved hjelp av boolske spørsmål kan du filtrere for mer spesifikke parametere, slik at du kan få mer presise resultater.

I denne artikkelen vil vi se på hvordan du bruker fire boolske klausuler tilgjengelig i Elasticsearch: must, must_not, bør og filtrere.

Generell syntaks

Den generelle syntaksen til en boolsk spørsmål som brukes i Elasticsearch er:

Få _Search

"spørring":
"bool":
"må": [

],
"må ikke": [

],
"bør": [

],
"Filter": [

]

Du trenger ikke å kombinere alle boolske forekomster i et enkelt spørsmål. Du kan bruke hver som en frittstående enhet.

Boolsk må

La oss si at du har en indeks som inneholder blogger. Vi kan hente dokumentene der OS er en Windows -maskin. Nedenfor er et eksempel på spørring:

Få /kibana_sample_data_logs /_search

"spørring":
"bool":
"må": [
"begrep":
"maskin.OS ":
"Verdi": "Vinn"


]


Som vist i eksemplet svaret, bør resultatet ovenfor returnere verdiene der OS er Windows.

Boolean must_not

Tilsvarende kan vi bruke Must_not -forekomsten for å fjerne begrepet der OS er Windows.

Ta eksemplet spørring nedenfor:

Få /kibana_sample_data_logs /_search

"spørring":
"bool":
"må ikke": [
"begrep":
"maskin.OS ":
"Verdi": "Vinn"


]


Denne spørringen filtrerer ut alle postene der maskinen.OS er en Windows -maskin. Nedenfor er et eksempel resultat:

Boolsk filter

Filter boolean vil fjerne alle dokumenter som ikke samsvarer med den spesifiserte tilstanden.

For eksempel kan vi filtrere loggene der antall byte er større enn 1000.

Vi kan kjøre et spørsmål som vist nedenfor:

Få /kibana_sample_data_logs /_search

"spørring":
"bool":
"Filter": [
"område":
"byte":
"GTE": 10000


]


Responsen skal bare omfatte dokumentene der antall byte er større enn den angitte verdien.

Eksempel svar:

Du kan også kombinere et filter med andre boolske forekomster. For eksempel søker vi først etter matchende dokumenter der OS er vinn og filtrerer deretter for antall byte større enn 10000.

Få kibana_sample_data_logs/_search

"spørring":
"bool":
"må": [
"begrep":
"maskin.OS ":
"Verdi": "Vinn"


],
"Filter": [
"område":
"byte":
"GTE": 10000


]


I dette tilfellet henter vi først dokumentene der OS inneholder begrepet “Win”. Vi bruker deretter resultatene og filteret for antall byte større enn 10000.

De resulterende dokumentene vil være lik den som er vist nedenfor:

Boolsk burde

Den endelige boolske forekomsten du kan bruke er burde. Skal er nært likt must, men det er mindre strengt.

Få kibana_sample_data_logs/_search

"spørring":
"bool":
"bør": [
"kamp":
"maskin.OS ":" OSX "

]


Eksemplet skal returnere postene strengen "OSX" vises i OS -feltet.

Konklusjon

I denne artikkelen lærte du hvordan du jobber med den boolske spørringen i Elasticsearch og filterresultater basert på spesifikke forhold.