Hva er forskjellen mellom fuzzy Query og match Query?

Hva Er Forskjellen Mellom Fuzzy Query Og Match Query



Elasticsearch er en velkjent, gratis, åpen kildekode, analytisk og distribuert søkemotor og database som brukes til å administrere ulike typer data. Det er en ren NoSQL-database og fungerer annerledes enn typiske SQL- og relasjonsdatabaser. Elasticsearch bruker spørring DSL ((Domain Specific Language) og REST API-er for å administrere og analysere dataene. Ulike typer søk finnes i Elasticsearch, for eksempel fuzzy query, match query, wild card query, prefiks query og mange flere. Disse spørringene fungerer annerledes. fra hverandre.

Dette innlegget demonstrerer på:

Hva er en 'fuzzy' spørring?

« uklar ' query er en Query DSL som utfører søk andre operasjoner som å endre tegnet, sette inn tegnet eller fjerne tegnet basert på ' Levenshtein rediger avstand ' avstand. Den finner vanligvis forskjellen mellom termer og returnerer resultatet i et dokument som er nærmere eller nesten lik søkeordet.







Hva er et «match»-søk?

« kamp ”-spørring er en annen type Query DSL som brukes til å matche eller søke i gitte data som streng, tall eller tekst. Det er en ' full tekst ” basert spørring og utfører et fulltekstsøk og returnerer resultatene som samsvarer nøyaktig med søkeordet. Hvis termen ikke samsvarer med søketermen, vil den returnere en null-streng eller usann.



Forskjellen mellom 'fuzzy' og 'match' spørring

Både ' uklar ' og ' kamp '-søk brukes til søkeformål. Den viktigste forskjellen mellom disse to søkene er at det 'fuzzy' søket gjør et uklart søk og returnerer et resultat som ligner på eller nær det søkeord. I motsetning til dette returnerer «match»-søket resultatene som samsvarer nøyaktig med søkeordet.



For bedre forståelse, følg eksemplene nedenfor:





Eksempel 1: Fuzzy søk ved å bruke 'fuzzy' spørring

Anta at brukeren ønsker å finne dokumentet som har ' Betegnelse ' verdi som ' Forfatter '. La oss gjøre et søk som finner et nærmere samsvar. For å gjøre det, bruk ' uklar ' spørring for å søke i et dokument som har en ' Betegnelse ' verdi lik eller nærmere ' forfatter ':

FÅ linuxhint / _Søk

{

'spørsmål' : {

'fuzzy' : {

'Betegnelse' : 'forfatter'

}

}

}

Utdataene nedenfor viser at dokumentet har id ' 1 ' har en ' Betegnelse ' verdi nær ' forfatter ' søkeord:



Men hvis eksemplet ovenfor brukes av ' kamp ' spørring, vil det sende en ' nullstreng ettersom den returnerer den eksakte samsvarende termen.

Eksempel 2: Uklar søk ved hjelp av 'Match'-søk

La oss ta det samme eksemplet og bruke ' kamp ' spørring for å finne dokumentet som har ' Betegnelse ' verdi som ' forfatter ':

FÅ linuxhint / _Søk

{

'spørsmål' : {

'kamp' : {

'Betegnelse' : 'forfatter'

}

}

}

Utgangen nedenfor viser at ' kamp ' spørringen finner ikke nærmere resultater og returnerer en ' null ' streng:

La oss endre den søkte verdien fra ' forfatter ' til ' Forfatter ' og kjør ' kamp ' spørring som vist nedenfor:

FÅ linuxhint / _Søk

{

'spørsmål' : {

'kamp' : {

'Betegnelse' : 'Forfatter'

}

}

}

Her kan du se ' kamp ' spørring returnerer dokumentet med id ' 1 '. Fordi dokument 1 samsvarer nøyaktig med søkeordene:

Det handler om forskjellen mellom en ' uklar ' spørring og en ' kamp ' spørring.

Konklusjon

« uklar ”-søk brukes til å gjøre et uklart søk og returnerer resultatene som samsvarer nøye med søkeordet. Imidlertid ' kamp ”-søket støtter ikke uklart søk og returnerer resultatene som samsvarer nøyaktig med søkeordet. Denne bloggen har illustrert forskjellen mellom fuzzy query og match query.