Kurzy a certifikace Open Source
Elasticsearch - fulltext v praxi
Cena (bez DPH)
Kurz je určen pro všechny, kdo se chtějí naučit, jak na svém projektu vytvořit fulltextové vyhledávání, na které se v rámci kurz podíváme komplexně. Kromě využití Elasticsearch se naučíme i další koncepty uživatelského vyhledávání.
Během kurzu společně vytvoříme vyhledávání na reálných datech; od návrhu a architektury po plně funkční řešení, které budeme postupně rozšiřovat o pokročilou práci s českým jazykem, synonymy, překlepy, našeptávačem a dalšími funkcemi. Podíváme se, jak ovlivňovat relevanci v závislosti na uživatelském chování (hodnocení, nákupy, atd.) a dalších faktorech. Nakonec si ukážeme, jak celé řešení provozovat v produkčním prostředí.
Cílová skupina
Kurz je určen pro všechny vývojáře, kteří pracují na projektech, kde chtějí řešit vyhledávání pro uživatele (např. katalogy produktů, článků, atd.).
Garant kurzu
Petrův odborný záběr je od solution architektury přes vlastní development (JavaScript, PHP) přes Elasticsearch, Oracle, PL/SQL až po agilní metodiky a SCRUM. Petr se zároveň věnuje již několik let technologii Elasticsearch a stal se kmenovým lektorem společnosti Datascript.
Osnova
Vyhledávání stavěné pro uživatele
- Jak uživatelé na vašem webu vyhledávají?
- Jak navrhnout vyhledávání, architektura
- Proces zpracování uživatelského dotazu
- Vyhledávací kontext
- Identifikace entit (co uživatel skutečně hledá)?
Cluster pro fulltext
- Návrh architektury clusteru pro fulltextové vyhledávání
- Lab
Indexace dat do Elasticsearch
- Synchronizace dat z relační databáze a dalších úložišť
- Průběžné a jednorázové indexování dat
- Sledování a zlepšování výkonu indexace dokumentů
- Lab
Vytvoření fulltextového vyhledávání
- Základy fulltextu, inverted index
- Nastavení vhodného mappingu
- Vazby mezi objekty, tipy z praxe
- Základní analýza textu
- Lab
Pracujeme s češtinou
- Jak vyhledávat v čestině?
- Základní přehled nástrojů pro práci s českým jazykem
- Vyhledávání nezávisle na diakritice
- Hledání kořenu slova
- Dostupné Stemmery, Lematizace
- Stemmery do hloubky, tvorba vlastních slovníků
- Doporučený analyzer pro český jazyk
- Tipy z praxe
- Lab
Vyhledávací DSL dotaz
- Tvorba vyhledávacího dotazu
- Vyhledávání v jednom a více polích
- Strategie vyhledávání ve více polích a jakou zvolit v jakém případě?
- Zvýhoďnování celých frází
- Tipy z praxe
- Lab
Zapojujeme další pole
- Zvýhodňování, boosting
- Vyhledávání v kódech
- Vyhledávání v parametrech, kategoriích, značkách, tagách
- Jak nastavit váhy v jednotlivých polích
- Signály
- Lab
Synonyma
- Jak a proč zapojit synonyma do procesu vyhledávání?
- Slovník dostupných synonym pro češtinu a další jazyky
- Tvorba a zapojení vlastních slovníků
- Tipy z praxe
- Lab
Relevance
- Co je relevance?
- Jak měřit relevanci?
- Jak měřit změnu relevance při úpravě vyhledávání?
- Score, jak Elasticsearch počítá relevanci
- TF/IDF, BM25 a teorietické minimum
- Lab
Ovlivňování relevance
- Ovlivňování výsledků na základě uživatelských akcí (nákupy, hodnocení, atd.)
- Ovlivňování na základě vlastností dokumentů
- Rescoring dokumentů
- Decay funkce
- Lab
Našeptávač
- Obecně k problematice "našeptávání"
- Různé možnosti implementace na praktických ukázkách
- Jak na stejné výsledky v našeptávači a výsledcích vyhledávání?
- Dis_max a další query do hloubky
- Lab
Překlepy
- Základní ošetření překlepů
- Vytváříme "Měli jste na mysli?"
- Suggesters
- Lab
Uživatelské filtry, facetová navigace
- Jak na uživatelské filtry?
- Agregace
- Vytváříme "Měli jste na mysli?"
- Suggesters
- Lab
Jdeme do produkce
- Nastavení clusteru pro produkční prostředí, konfigurace
- Volíme počet nodů, shardů, replik
- Nastavení monitoringu
- Škálujeme na množství dat a návštěvnost
- Lab
Technické specifikace
- Počítač s jakýmkoliv OS (Linux, Windows, OS X)
- SSH klient (na Windows např. Winsshterm, Putty), oprávnění připojit se vzdáleně na SSH (port 22)
- Webový prohlížeč
Předpoklady účastníka
Základní znalost Elasticsearch, protokol HTTP, formát JSON, obecná znalost databázových systémů.