07 - Vyhledávání v Kibaně

 

V Kibaně je možné v sekci Discover psát jednoduché full textové dotazy. Všechny nalezené dokumenty pak budou zobrazeny v tabulce. Díky našeptávání je pak psaní dotazů opravdu snadné.

V UI Kibany je na výběr z dvou různých syntax - Kibana Query Language (KQL) Query String (respektive Lucene query). Ta první má jednodušší syntax a je lépe integrována do Kibany, druhá zase nabí o něco více funkcionalit.

Kibana Query Language

KQL dokumentace: https://www.elastic.co/guide/en/kibana/current/kuery-query.html

Nejsnazším způsobem vyhledávání je napsat dotaz do vyhledávacího pole:

Cursor_and_Discover_-_Elastic

Pokud není uvedeno, vyhledává se ve všech polích. Pro vyhledávání pouze v určitých polích je nutné je uvést:

Discover_-_Elastic-4966310

Pokud je pole uloženo jako typ keyword, je nutné při vyhledávání uvést jeho přesnou podobu. Pokud je však uvedeno jako keyword, stačí shoda v libovolném slově. Například na poli category:

Discover_-_Elastic-4967627

U polí typu text není nutné psát všechna slova v shodném pořadí. Pokud ale na dodržení pořadí trváme, lze použít frázové vyhledávání pomocí uvozovek:

Discover_-_Elastic_and_50244_-_TYPO3_connector_refactored_to_use_new_error_handling___981__·_Merge_requests_·_l10n___connector_·_GitLab

Dotazy lze spojovat pomocí spojek AND, OR a NOT. Priority lze určit kulatými závorkami:

Discover_-_Elastic-4968159

Filtrovat číselné hodnoty (nebo datum) lze pomocí >, <, >=, <=:

Discover_-_Elastic-4968346

Pro vyhledání všech dokumentů, které obsahují dané pole s libovolnou (neprázdnou) hodnotou lze využít znak *:

Discover_-_Elastic_and_50244_-_TYPO3_connector_refactored_to_use_new_error_handling___981__·_Merge_requests_·_l10n___connector_·_GitLab-4968434

Hvězdičku lze také využít pro částečnou shodu, což funguje perfektně s typem keyword. Například pro zobrazení všech e-mailů z domény richards-family.zzz:

Discover_-_Elastic_and_50244_-_TYPO3_connector_refactored_to_use_new_error_handling___981__·_Merge_requests_·_l10n___connector_·_GitLab-4968585

Další možností filtrace dat v tabulce je využití filtrů - filters. Filtr lze vytvořit pomocí tlačítka plus (respektive minus) vedle každé hodnoty v tabulce. Nebo jej lze ručně definovat kliknutím na + Add filter:

Discover_-_Elastic-5045944

Filtry a full textové dotazy lze kombinovat. Každý filtr může být upraven, dočasně zakázán, nebo může být invertována jeho logika:

Discover_-_Elastic-5290144

Jakmile jsou query a filtry hotové, lze si je uložit pro pozdější použití:

Discover_-_Elastic-5044083

Lze také uložit kompletně celou tabulku (včetně vyhledávání):

Discover_-_Elastic-5044392

V neposlední řadě je také možné tabulku sdílet pomocí odkazu, nebo si data stáhnout jako CSV soubor:

Discover_-_Elastic-5044506

 

Query String

Query String (nebo také Lucene Query) je alternativa k KQL. Lucene nám umožňuje psát o něco pokročilejší dotazy - například povolit vyhledávání s překlepy. Na druhou stranu však nefunguje našeptávání. Do módu Lucene se přepnete vypnutím KQL:

Discover_-_Elastic-5290238

 

Syntax je až na pár odlišností podobná KQL

 

Query string může být také součástí URL requestu, takže jej lze použít v dev tools, nebo také externí aplikaci dotazující se Elasticsearch. V tomto případě bude query uvedena jako parametr q endpointu _search:

 

Úkol: Vyhledávání v Kibaně

  1. Uložte následující dokumenty do Elasticsearch:

  2. Vytvořte Data view pro index reviews. použijte date jako timestamp field.

  3. Vytvořte tabulku v Discover s použitím data view reviews s použitím následujících sloupců (nezapomeňte změnit vhodně time range):

Discover_-_Elastic-5474266

  1. Napište vyhledávací dotazy, které vyfiltrují data:

    1. Vyhledejte dokumenty obsahující slovo Ball v titulku (pole title)
    2. vyhledejte dokumenty s customer_id větším než 12932200 a jejichž e-mailová adresa (pole email) končí gmail.com
    3. Vyhledejte dokumenty vytvořené před Feb 15 2022 a zároveň jejichž title není Barcode Scanner
    4. Vyhledejte dokumenty, jejichž title je přesně 8 Ball Pool
    5. Vyhledejte dokumenty, které neobsahují pole rating
    6. Vyhledejte dokumenty obsahující sometimXes v poli comment — s povolenými překlepy