Vyhledávač Adres (RÚIAN)
Školní projekt
RustLeptosWebAssemblyDocker
Tento projekt je mou implementací úkolu zadaného v rámci hodiny databází na střední škole.
Cílem aplikace je rychlé a efektivní vyhledávání adres v České republice nad daty z RÚIAN.
Hlavní technické zajímavosti
Databázová část & Full-text Index
To nejdůležitější se odehrává "pod kapotou" v databázi. Hlavní výzvou bylo zajistit bleskové vyhledávání v milionech záznamů adres.
- Full-text Index: Využil jsem FULLTEXT index nad speciálně připraveným sloupcem `search`. To umožňuje vyhledávat i neúplné adresy nebo adresy v různém pořadí (např. "Praha Roztylská" i "Roztylská Praha").
- Normalizace dat: Při importu dat z CSV (RÚIAN) se vytvoří speciální sloupec search ve kterém jsou data normalizovaná (odstraněna diakritika, převedena na malá písmena a padding čísel, aby se mohl plně využít fulltext index).
Rust & WebAssembly
Aplikace je napsána kompletně v Rustu, což zaručuje bezpečnost a výkon.
- Leptos: Webový frontend i backend (SSR) běží na frameworku Leptos.
- WebAssembly (WASM): Klientská část aplikace je kompilována do WASM, což umožňuje spouštět Rust kód přímo v prohlížeči. Chtěl jsem zkusit psát front end i v něčem jiném jazyce než Typescriptu, na který jsem zvyklý.
Vytvořeno jako školní projekt pro propojení znalostí z databází a programování v Rustu.