Aký je rozdiel medzi fuzzy dotazom a zhodným dotazom?

Aky Je Rozdiel Medzi Fuzzy Dotazom A Zhodnym Dotazom



Elasticsearch je známy, bezplatný, open source, analytický a distribuovaný vyhľadávací nástroj a databáza, ktorá sa používa na správu rôznych typov údajov. Je to čisto NoSQL databáza a funguje inak ako typické SQL a relačné databázy. Elasticsearch používa na správu a analýzu údajov dopyty DSL ((Domain Specific Language) a REST API. V Elasticsearch existujú rôzne typy dopytov, ako napríklad fuzzy dopyt, dopyt na zhodu, dopyt so zástupným znakom, dopyt na predponu a mnoho ďalších. Tieto dopyty fungujú odlišne jeden od druhého.

Tento príspevok demonštruje na:

Čo je to „fuzzy“ dotaz?

' fuzzy “ dotaz je dotaz DSL, ktorý vykonáva vyhľadávanie iných operácií, ako je zmena znaku, vloženie znaku alebo odstránenie znaku na základe „ Levenshtein upraviť vzdialenosť “vzdialenosť. Zvyčajne nájde rozdiel medzi výrazmi a vráti výsledok v dokumente, ktorý je bližšie alebo takmer podobný hľadanému výrazu.







Čo je to „zhoda“ dotaz?

' zápas ” dotaz je ďalší typ dotazu DSL, ktorý sa používa na zhodu alebo vyhľadávanie daných údajov, ako je reťazec, číslo alebo text. Ide o „ v plnom znení ” a vykoná fulltextové vyhľadávanie a vráti výsledky, ktoré sa presne zhodujú s hľadaným výrazom. Ak sa výraz nezhoduje s hľadaným výrazom, vráti nulový reťazec alebo hodnotu false.



Rozdiel medzi dopytom „fuzzy“ a „match“.

Obaja“ fuzzy “ a „ zápas “ dopyty sa používajú na účely vyhľadávania. Kľúčový rozdiel medzi týmito dvoma dopytmi je v tom, že „fuzzy“ dopyt vytvára nejasné vyhľadávanie a vracia výsledok, ktorý je podobný alebo blízky hľadanému výrazu. Na rozdiel od toho dopyt „zhoda“ vráti výsledky, ktoré sa presne zhodujú s hľadaným výrazom.



Pre lepšie pochopenie postupujte podľa nižšie uvedených príkladov:





Príklad 1: Fuzzy vyhľadávanie pomocou „fuzzy“ dopytu

Predpokladajme, že používateľ chce nájsť dokument, ktorý má „ Označenie “hodnota ako “ Autor “. Urobme vyhľadávanie, ktoré nájde bližšiu zhodu. Ak to chcete urobiť, použite „ fuzzy ” dotaz na vyhľadanie dokumentu, ktorý má „ Označenie “hodnota rovná alebo bližšia k “ autora “:

ZÍSKAJTE linuxhint / _Vyhľadávanie

{

'dopyt' : {

'fuzzy' : {

'označenie' : 'autor'

}

}

}

Nižšie uvedený výstup ukazuje, že dokument s id „ 1 ' má ' Označenie “hodnota blízka “ autora ” hľadaný výraz:



Ak však vyššie uvedený príklad použije „ zápas “, odošle “ nulový reťazec ”, pretože vráti presne zhodný výraz.

Príklad 2: Fuzzy vyhľadávanie pomocou dopytu „Match“.

Vezmime si rovnaký príklad a použijeme „ zápas ” dotaz na nájdenie dokumentu s “ Označenie “hodnota ako “ autora “:

ZÍSKAJTE linuxhint / _Vyhľadávanie

{

'dopyt' : {

'zápas' : {

'označenie' : 'autor'

}

}

}

Nižšie uvedený výstup ukazuje, že „ zápas “ dotaz nenájde bližšie výsledky a vráti “ nulový ” reťazec:

Upravme hľadanú hodnotu z „ autora “ až “ Autor “ a spustite „ zápas “, ako je uvedené nižšie:

ZÍSKAJTE linuxhint / _Vyhľadávanie

{

'dopyt' : {

'zápas' : {

'označenie' : 'autor'

}

}

}

Tu môžete vidieť „ zápas “ dotaz vráti dokument s id “ 1 “. Pretože dokument 1 sa presne zhoduje s hľadanými výrazmi:

To je všetko o rozdiele medzi „ fuzzy “ dotaz a “ zápas ' dopyt.

Záver

' fuzzy ” dotaz sa používa na fuzzy vyhľadávanie a vracia výsledky, ktoré sa tesne zhodujú s hľadaným výrazom. Avšak, „ zápas ” dotaz nepodporuje fuzzy vyhľadávanie a vráti výsledky, ktoré sa presne zhodujú s hľadaným výrazom. Tento blog ilustroval rozdiel medzi nejasným dopytom a dopytom zhody.