Kakšna je razlika med mehko poizvedbo in poizvedbo za ujemanje?

Kaksna Je Razlika Med Mehko Poizvedbo In Poizvedbo Za Ujemanje



Elasticsearch je znan, brezplačen, odprtokoden, analitičen in porazdeljen iskalnik in baza podatkov, ki se uporablja za upravljanje različnih vrst podatkov. To je izključno baza podatkov NoSQL in deluje drugače od tipičnih SQL in relacijskih baz podatkov. Elasticsearch uporablja poizvedbe DSL ((Domain Specific Language) in API-je REST za upravljanje in analizo podatkov. V Elasticsearch obstajajo različne vrste poizvedb, kot so mehke poizvedbe, poizvedbe za ujemanje, poizvedbe z nadomestnimi znaki, poizvedbe s predpono in številne druge. Te poizvedbe delujejo drugače. drug od drugega.

Ta objava prikazuje na:

Kaj je 'mehka' poizvedba?

' mehka ” je poizvedba DSL, ki izvaja druge operacije iskanja, kot je spreminjanje znaka, vstavljanje znaka ali odstranjevanje znaka na podlagi “ Levenshtein uredi razdaljo ' razdalja. Običajno najde razliko med izrazi in vrne rezultat v dokumentu, ki je bližje ali skoraj podoben iskanemu izrazu.







Kaj je poizvedba »ujema«?

' tekma ” poizvedba je druga vrsta Query DSL, ki se uporablja za ujemanje ali iskanje danih podatkov, kot so niz, številka ali besedilo. Je ' celotno besedilo ” temelji na poizvedbi in izvede iskanje po celotnem besedilu ter vrne rezultate, ki se natančno ujemajo z iskanim izrazom. Če se izraz ne ujema z iskalnim izrazom, bo vrnil ničelni niz ali false.



Razlika med poizvedbo »fuzzy« in »match«.

Oboje ' mehka « in » tekma ” poizvedbe se uporabljajo za namene iskanja. Ključna razlika med tema dvema poizvedbama je, da »mehka« poizvedba izvaja mehko iskanje in vrne rezultat, ki je podoben ali blizu iskanemu izrazu. Nasprotno pa poizvedba »ujema« vrne rezultate, ki se natančno ujemajo z iskanim izrazom.



Za boljše razumevanje sledite spodnjim primerom:





Primer 1: Mehko iskanje z uporabo »mehke« poizvedbe

Recimo, da uporabnik želi najti dokument, ki ima » Imenovanje » vrednost kot « Avtor ”. Izvedimo iskanje, ki najde tesnejše ujemanje. Če želite to narediti, uporabite » mehka ' poizvedba za iskanje dokumenta, ki ima ' Imenovanje ” vrednost enaka ali bližja “ avtor ”:

PRIDOBITE linuxhint / _Iskanje

{

'povpraševanje' : {

'mehka' : {

'oznaka' : 'avtor'

}

}

}

Spodnji rezultat kaže, da ima dokument ID ' 1 ' ima ' Imenovanje ' vrednost blizu ' avtor ” iskani izraz:



Če pa zgornji primer uporabi » tekma ' bo poslala ' ničelni niz «, saj vrne natančno ujemanje izraza.

Primer 2: Mehko iskanje z uporabo poizvedbe »ujemaj«.

Vzemimo isti primer in uporabimo » tekma ', da poiščete dokument, ki ima ' Imenovanje » vrednost kot « avtor ”:

PRIDOBITE linuxhint / _Iskanje

{

'povpraševanje' : {

'tekma' : {

'oznaka' : 'avtor'

}

}

}

Spodnji rezultat kaže, da je ' tekma ' poizvedba ne najde bližjih rezultatov in vrne ' nič ' vrvica:

Spremenimo iskano vrednost iz ' avtor ' do ' Avtor ' in zaženite ' tekma «, kot je prikazano spodaj:

PRIDOBITE linuxhint / _Iskanje

{

'povpraševanje' : {

'tekma' : {

'oznaka' : 'Avtor'

}

}

}

Tukaj si lahko ogledate » tekma ” poizvedba vrne dokument z ID-jem “ 1 ”. Ker se dokument 1 natančno ujema z iskanimi izrazi:

To je vse o razliki med ' mehka ' poizvedba in ' tekma ” poizvedba.

Zaključek

' mehka ” se uporablja za mehko iskanje in vrne rezultate, ki se zelo ujemajo z iskanim izrazom. Vendar pa je ' tekma ” poizvedba ne podpira mehkega iskanja in vrne rezultate, ki se natančno ujemajo z iskanim izrazom. Ta spletni dnevnik je prikazal razliko med mehko poizvedbo in poizvedbo za ujemanje.