Elasticsearch er en søgemaskine, der bruger Apache Lucene-biblioteker fra programmeringssproget Java og bliver brugt af millioner. Det gør det muligt for brugeren at gemme data i sin analysedatabase, og brugeren kan også oprette indekser og gemme data i dem. Brugeren kan også anvende forskellige forespørgsler for at få data fra tabellerne/indekserne og få nyttig information derigennem.
Denne vejledning vil forklare forskellen mellem Match og booleske forespørgsler i Elasticsearch.
Hvad er matchen i Elasticsearch?
Match-forespørgslen i Elasticsearch er meget ligetil, da den indeholder en fuldtekstbetingelse for at hente data fra databasen. Match-forespørgsel tager dataene fra indekset og omdanner dem til et array og søger derefter efter de ønskede søgeord fra det, hvilket gør det effektivt at hente data.
Hvad er Boolean i Elasticsearch?
Boolsk forespørgsel i Elasticsearch kombinerer flere forespørgsler til boolske udsagn og viser det resulterende dokument fra databasen. Den boolske forespørgsel har flere klausuler, som er som følger:
-
- skal
- filter
- bør
- må ikke
Hvad er forskellen mellem Match og Boolean i Elasticsearch?
Det følgende afsnit forklarer forskellen mellem Match og Boolean aggregering ved hjælp af eksempler. Lad dig følge nedenstående procedure:
Opret forbindelse til Elasticsearch og Kibana
For at bruge Match- og Boolean-forespørgslerne i Elasticsearch skal du åbne terminalen fra bin-mappen i Elasticsearch og bruge følgende kommando:
elasticsearch.bat
Gå derefter ind i bin-mappen på Kibana fra det lokale system for at åbne terminalen og bruge følgende kommando:
Brug den lokale vært med portnummeret 9200 i webbrowseren til at logge ind på Elasticsearch:
Igen skal du bruge den lokale vært på webbrowseren, men med et portnummer 5601 for at logge ind på Kibana UI:
Gå ind i ' Udviklerværktøjer ”-konsollen fra Kibana-siden fra søgelinjen:
Syntaks for Match Query
Følgende er den grundlæggende syntaks for Match-forespørgslen med en GET-anmodning om at hente data:
FÅ / _Søg{
'forespørgsel' : {
'match' : {
'besked' : {
'forespørgsel' : 'Dette er en test'
}
}
}
}
Ovenstående uddrag foreslår:
-
- Koden starter med a FÅ anmodning ved hjælp af Søg API at hente data fra database og brugeren kan tilføje en indeksnavn efter søgeordet GET.
- Det forespørgsel nøgleordet indeholder match klausul, der får besked fra indekset eller databasen og derefter data er nævnt i forespørgsel sætning til sidst.
Brug Match Query
Dette afsnit forklarer et praktisk eksempel på brug af Match-forespørgslen og viser dataene fra demo-indeks ved hjælp af en FÅ anmodning:
FÅ / demo-indeks / _Søg
Brug følgende kode til at udføre Match-forespørgslen i Elasticsearch på ' demo-indeks ' for at anvende forespørgsel på ' watson ' navn:
{
'forespørgsel' : {
'match' : {
'navn' : {
'forespørgsel' : 'watson'
}
}
}
}
Syntaks for boolesk forespørgsel
Følgende er den grundlæggende syntaks for den boolske forespørgsel med en GET-anmodning om at hente data fra databasen:
FÅ / _Søg{
'forespørgsel' : {
'bool' : {
'klausul' : {
'Mark' : 'semester'
}
}
}
}
Ovenstående uddrag foreslår:
-
- Det FÅ anmodning bruges til at hente data fra indekset vha søge API .
- Det forespørgsel nøgleordet indeholder bool for den forespørgsel, der indeholder dens klausul for at anvende forespørgslen på indekset eller databasen og derefter data hentes og vises på skærmen.
Brug Boolean Query
Følgende forespørgsel bruger den boolske forespørgsel til at hente data fra ' demo-indeks ' bruger ' skal '-klausul og kombinere to forespørgsler af ' Betegnelse ' med ' Navn ”:
FÅ / demo-indeks / _Søg{
'forespørgsel' : {
'bool' : {
'skal' : [
{
'semester' : {
'Betegnelse' : 'Allrounder'
}
} ,
{
'semester' : {
'Navn' : 'Anderson'
}
}
]
}
}
}
Denne kombination vil skabe en boolsk erklæring for at anvende forespørgslen på indekset:
Det handler om forskellene mellem Match og booleske forespørgsler i Elasticsearch.
Konklusion
Match og Boolean er to forespørgsler, der bruges i Elasticsearch til at hente data fra analysedatabasen eller fra indekset oprettet af brugeren. Match-forespørgsel konverterer dataene til arrays og henter data fra arrayet for at gøre processen mere effektiv. Boolesk forespørgsel anvender flere forespørgsler til at lave én erklæring og anvender en forespørgsel på indekset for at hente data. Denne vejledning har forklaret forskellene mellem Match- og Boolean-forespørgslerne i Elasticsearch for at hente data fra databasen.