BizKitHub

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á.

Naposledy aktualizováno 24. dubna 2026

Čí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í nov najde '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*414
  • (150+50)*1.21242
  • 1000/3333.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.