Vyhledávání
Hlavní pole přijímá jakýkoli textový dotaz a reaguje průběžně: jakmile uživatel na okamžik přestane psát, systém odešle dotaz a vrátí výsledky. Tato technika, známá jako 'debounce', zabraňuje komunikaci se serverem po každém stisku klávesy a udržuje uživatelské rozhraní (UI) plynulé. Indikátor načítání v pravé části pole signalizuje, že dotaz právě probíhá.
Čím větší je systém, tím obtížnější je v něm najít konkrétní záznam. Uživatelé si často pamatují jen fragment — část jména, polovinu čísla objednávky, předmět e-mailu — a potřebují se dostat k relevantnímu záznamu, aniž by nejprve museli vybrat správný modul a v něm aplikovat filtry. Modul /search proto nabízí jediné pole, do kterého lze zadat cokoli: výsledkem je seznam záznamů napříč všemi hlavními entitami systému, seřazený podle relevance. Vyhledávání je navrženo tak, aby bylo tolerantní k diakritice, velikosti písmen a drobným překlepům a aby chápalo kontext — pokud uživatel zadá matematický výraz, vrátí namísto záznamů výsledek výpočtu.
Vyhledávací pole
Hlavní pole přijímá jakýkoli textový dotaz a reaguje průběžně: jakmile uživatel na okamžik přestane psát, systém odešle dotaz a vrátí výsledky. Tato technika, známá jako 'debounce', zabraňuje komunikaci se serverem po každém stisku klávesy a udržuje uživatelské rozhraní (UI) plynulé. Indikátor načítání v pravé části pole signalizuje, že dotaz právě probíhá.
💡 Stačí zadat část slova. Zadání
novnajde 'Novák' i 'nová objednávka' — fulltextový engine pracuje s prefixy a podřetězci, nikoli s přesnými shodami.
Typy entit
Vyhledávání prochází současně všemi hlavními kategoriemi záznamů v systému. Každý typ je prohledáván v rámci vlastního souboru polí, která pro něj dávají smysl:
- Objednávky (order) — čísla objednávek, jména zákazníků, poznámky.
- Produkty (product) — názvy, kódy, EAN, krátké popisy.
- Kontakty (contact) — jména, e-maily, telefonní čísla, firemní údaje.
- Kalendáře (calendar) — názvy kalendářů a jejich popisy.
- Události (event) — názvy, popisy a kódy kalendářních událostí.
- E-maily (email) — předměty a obsah odchozí a příchozí korespondence.
- Články a stránky (post) — titulky, URL, úryvky.
- Tikety (issue) — klíče, předměty, popisy. Paralelní vyhledávání znamená, že čekací doba je prakticky stejná bez ohledu na velikost dat — dotaz nečeká 'napříč' jedním typem na druhý, ale běží současně. Výsledky jsou pak seřazeny napříč kategoriemi podle relevance k dotazu.
Výsledky
Každý nalezený záznam je zobrazen jako karta s jednotnou strukturou: ikona typu entity pro rychlou vizuální identifikaci, název s zvýrazněnými odpovídajícími částmi dotazu, sekundární informace (např. e-mail pro kontakt nebo číslo pro objednávku), textový štítek kategorie a odkaz otevírající detail záznamu. Části textu, které odpovídají dotazu, jsou vizuálně zvýrazněny a u delších textů je zobrazen kontextový úryvek — ukazující pouze sekci, kde je shoda nalezena, aby byl výsledek čitelný i u vícedílných článků.
ℹ️ Výsledky jsou obecně omezeny na 100 položek, aby byl přehled čitelný i pro velmi obecné dotazy. Pokud potřebujete najít více záznamů konkrétní kategorie, použijte filtr typu (viz níže) nebo upřesněte dotaz.
Filtrování výsledků
V horní části stránky se nachází rozbalovací seznam, který lze použít k omezení výsledků na jedinou kategorii — například pouze produkty nebo pouze kontakty. Filtr má dvojí výhodu: zpřehledňuje výstup (nemícháte objednávky s články) a zvyšuje limit výsledků v rámci této kategorie (umožňuje získat stovky záznamů, nikoli jen prvních několik jako v globálním režimu). Do globálního režimu se můžete kdykoli vrátit jediným kliknutím.
💡 Aktivní filtr znamená, že ostatní typy záznamů nejsou vůbec prohledávány. To urychluje dotaz a umožňuje vám vidět více výsledků v dané kategorii než v rámci globálního limitu.
Normalizace dotazu
Před odesláním prochází dotaz automatickou úpravou, aby bylo zajištěno konzistentní chování napříč jazyky a styly psaní. Velikost písmen je ignorována — Novák a novák vrací stejné výsledky. Diakritika je normalizována symetricky: Krkonose najde 'Krkonoše' a naopak, takže uživatelé na německých nebo anglických klávesnicích nejsou znevýhodněni. Redundantní mezery jsou odstraněny a víceslovné dotazy jsou chápány jako celek. Interpunkce na okrajích je oříznuta, aby čárky a tečky nepřekážely.
ℹ️ Normalizace je symetrická — aplikuje se nejen na dotaz, ale také na prohledávaná data. To zajišťuje, že vyhledávání funguje správně i v jazycích s bohatou diakritikou a nezávisí na tom, jak byl záznam původně zadán.
Matematická kalkulačka
Pokud uživatel zadá do vyhledávacího pole matematický výraz, systém jej rozpozná a zobrazí vypočítanou hodnotu jako první výsledek. Jedná se o jednoduchou, ale překvapivě užitečnou funkci — administrátor často potřebuje rychle spočítat cenu s DPH nebo rozdělit částku mezi několik položek, a místo otevírání kalkulačky může použít stejné pole, které už má otevřené. Podporovány jsou základní operátory (+, -, *, /), závorky pro určení priority, vnořené výrazy a desetinná čísla.
Typické příklady:
2+3*4→14(150+50)*1.21→2421000/3→333.33
💡 Kalkulačka se aktivuje pouze v případě, že dotaz skutečně obsahuje matematický výraz. Textové dotazy jako '3 kusy' jsou prohledávány normálně a kalkulačka se nespustí.
Reakce rozhraní
Rozhraní poskytuje průběžnou zpětnou vazbu během vyhledávání. Jemná animace v pravé části pole naznačuje, že dotaz je systémem právě zpracováván. Mezi stiskem klávesy a odesláním dotazu dochází ke krátkému zpoždění v řádu stovek milisekund (debounce), což chrání zdroje před zbytečnými dotazy, přesto je dostatečně krátké, aby uživatel subjektivně necítil zpoždění. Pokud dotaz nevrátí žádné výsledky, zobrazí se zpráva 'žádné výsledky' spolu s tipem na upřesnění.
Analýza vyhledávání
Každý odeslaný dotaz je anonymně zaznamenán do interních statistik. To má tři praktické výhody: pomáhá identifikovat, co uživatelé v systému nejčastěji hledají, pomáhá odhalit chybějící obsah (dotazy, pro které systém nenašel žádné výsledky, ukazují na slepá místa) a identifikuje překlepy nebo synonyma, která by měla být přidána do normalizačních pravidel.
ℹ️ Statistiky jsou viditelné pouze pro administrátory v samostatné analytické zprávě. Nejedná se o sledování konkrétních uživatelů — zaznamenává se pouze to, že daný dotaz byl použit v rámci organizace, nikoli kdo jej zadal.
Kontext a rozsah
Globální vyhledávání respektuje organizační příslušnost uživatele — viditelné jsou pouze záznamy patřící organizaci, do které je uživatel přihlášen. Smazané a archivované záznamy se ve výsledcích nezobrazují, aby se zabránilo návratu historických položek do běžného provozu. Velmi dlouhé dotazy přesahující 100 znaků jsou automaticky zkráceny, aby se zatížení serveru udrželo v rozumných mezích. Vyhledávací index je aktualizován prakticky okamžitě s každou změnou dat — nový záznam je vyhledatelný během několika sekund po uložení.
⚠️ Pokud se zdá, že vyhledávání nenajde záznam, který jste právě vytvořili, jednoduše počkejte několik sekund a zkuste to znovu. U většiny dat jsou aktualizace okamžité; u rozsáhlých položek (dlouhé články, velké produkty s rozsáhlými popisy) může indexování trvat několik sekund.
Vyhledávání uživatele podle e-mailu
Modul také obsahuje specializovaný režim pro přesné vyhledání uživatelského profilu podle e-mailové adresy. Tento režim není určen pro interaktivní vyhledávání, ale pro interní potřeby systému — automatické doplňování kontaktů ve formulářích, ověřování, zda uživatel se zadaným e-mailem již existuje, a párování importovaných dat s existujícími profily.
💡 Na rozdíl od běžného vyhledávání vrací tato funkce pouze přesnou shodu e-mailové adresy, nikoli přibližné výsledky. Je tedy deterministická a vhodná pro následnou rozhodovací logiku.