Elasticsearch je vyhľadávací nástroj využívajúci knižnice Apache Lucene z programovacieho jazyka Java a používajú ho milióny ľudí. Umožňuje používateľovi ukladať údaje do svojej analytickej databázy a tiež môže vytvárať indexy a ukladať do nich údaje. Používateľ môže tiež použiť rôzne dotazy na získanie údajov z tabuliek/indexov a získať tak užitočné informácie.
Táto príručka vysvetlí rozdiel medzi zhodnými a boolovskými dopytmi v Elasticsearch.
Aká je zhoda v Elasticsearch?
Dotaz Match v Elasticsearch je veľmi jednoduchý, pretože obsahuje fulltextovú podmienku na získanie údajov z databázy. Match query berie údaje z indexu a premení ich na pole a potom z neho vyhľadá požadované kľúčové slová, vďaka čomu je načítanie údajov efektívne.
Čo je to boolovská hodnota v Elasticsearch?
Booleovský dotaz v Elasticsearch kombinuje viaceré dotazy do boolovských príkazov a zobrazuje výsledný dokument z databázy. Booleovský dotaz má viacero klauzúl, ktoré sú nasledovné:
-
- musieť
- filter
- by mal
- nesmieš
Aký je rozdiel medzi Match a Boolean v Elasticsearch?
Nasledujúca časť vysvetľuje rozdiel medzi Match a Boolean agregáciou pomocou príkladov. Postupujte podľa nižšie uvedeného postupu:
Pripojte sa k Elasticsearch a Kibana
Ak chcete použiť Match a Boolean dotazy v Elasticsearch, otvorte terminál z adresára bin Elasticsearch a použite nasledujúci príkaz:
elasticsearch.bat
Potom prejdite do adresára bin Kibana z lokálneho systému, otvorte terminál a použite nasledujúci príkaz:
Na prihlásenie do Elasticsearch použite localhost s číslom portu 9200 vo webovom prehliadači:
Opäť použite localhost vo webovom prehliadači, ale s číslom portu 5601 na prihlásenie do používateľského rozhrania Kibana:
Zamierte dovnútra „ Nástroje pre vývojárov ” konzoly zo stránky Kibana z vyhľadávacieho panela:
Syntax zhody dotazu
Nasleduje základná syntax dopytu Match s požiadavkou GET na načítanie údajov:
GET / _Vyhľadávanie{
'dopyt' : {
'zápas' : {
'správa' : {
'dopyt' : 'Toto je test'
}
}
}
}
Vyššie uvedený úryvok naznačuje:
-
- Kód začína na a GET žiadosť pomocou Search API na načítanie údajov z databázy a používateľ môže pridať indexový názov po kľúčovom slove GET.
- The dopyt kľúčové slovo obsahuje zápas doložka, ktorá dostane správu z indexu alebo databázy a potom údajov sa spomína v dopyt fráza na konci.
Použiť zhodný dopyt
Táto časť vysvetľuje praktický príklad použitia dotazu Match a zobrazuje údaje z demo-index pomocou a GET žiadosť:
GET / demo-index / _Vyhľadávanie
Použite nasledujúci kód na vykonanie zhody v Elasticsearch na stránke „ demo-index “, aby ste použili dotaz na „ Watson ' názov:
{
'dopyt' : {
'zápas' : {
'názov' : {
'dopyt' : 'watson'
}
}
}
}
Syntax booleovského dotazu
Nasleduje základná syntax boolovského dotazu s požiadavkou GET na načítanie údajov z databázy:
GET / _Vyhľadávanie{
'dopyt' : {
'bool' : {
'klauzula' : {
'lúka' : 'termín'
}
}
}
}
Vyššie uvedený úryvok naznačuje:
-
- The GET požiadavka sa používa na získanie údajov z indexu pomocou vyhľadávacie rozhranie API .
- The dopyt kľúčové slovo obsahuje bool pre dotaz, ktorý obsahuje jeho doložka aplikujte dotaz na index alebo databázu a potom na údajov sa načíta a zobrazí na obrazovke.
Použite boolovský dotaz
Nasledujúci dotaz používa booleovský dotaz na získanie údajov z „ demo-index “ pomocou „ musieť klauzulou a kombináciou dvoch dopytov z „ Označenie “ s “ názov “:
GET / demo-index / _Vyhľadávanie{
'dopyt' : {
'bool' : {
'musieť' : [
{
'termín' : {
'označenie' : 'Všestranný'
}
} ,
{
'termín' : {
'Názov' : 'Anderson'
}
}
]
}
}
}
Táto kombinácia vytvorí boolovský príkaz na použitie dotazu na index:
To je všetko o rozdieloch medzi Match a Boolean dotazmi v Elasticsearch.
Záver
Match a Boolean sú dva dotazy používané v Elasticsearch na získanie údajov z analytickej databázy alebo z indexu vytvoreného používateľom. Match query konvertuje údaje do polí a načítava údaje z poľa, aby bol proces efektívnejší. Booleovský dotaz aplikuje viacero dotazov na vytvorenie jedného príkazu a použije dotaz na index na načítanie údajov. Táto príručka vysvetlila rozdiely medzi dopytmi Match a Boolean v Elasticsearch na získanie údajov z databázy.