Jakmile v prostředí přibydou tisíce nebo desetitisíce záznamů napříč desítkami typů, přestává navigace stačit. Nabídky se prodlužují, sestavení filtru chvíli zabere a uživatel, který už zná název toho, co hledá, by se k němu neměl proklikávat přes tři úrovně hierarchie. Vyhledávání je nejrychlejší cesta od úmyslu k záznamu. Bereme ho jako základní funkci, ne jako pouhé zpříjemnění – a to z jednoduchého důvodu: polovičaté vyhledávání je horší než žádné. Uživatelé se naučí mu nevěřit, a vyhledávání, kterému lidé nevěří, zůstane nevyužité.
Princip je jednoduchý. Každý typ má své vlastnosti a implementátoři vyberou, které z nich jsou vyhledatelné. Indexovací vrstva pak udržuje živý index těchto vlastností tak, jak záznamy vznikají, mění se a mažou. Když uživatel začne psát do vyhledávacího pole, odpovídá index – a uživatel vidí shody během milisekund, a to napříč všemi typy, které má oprávnění vidět.
Dvě slova v té větě dělají potichu spoustu práce. To první jsou oprávnění. Výsledky vyhledávání se řídí stejnými pravidly přístupu podle rolí i na úrovni jednotlivých polí jako zbytek platformy. Kdo na záznam nemá vidět, ten ho ve vyhledávání nikdy neuvidí – ani název, ani začerněný náznak. Tím odpadá celá jedna kategorie nechtěného úniku dat, který trápí dodatečně přilepené vyhledávače a občas vyplave při auditu. Když se k záznamu nedostanete klikáním, nedostanete se k němu ani vyhledáváním.
To druhé je živě. Napovídané výsledky se objevují už během psaní, ne až po odeslání. U běžných dotazů – jméno zákazníka, referenční číslo, část předmětu – se hledaný záznam vynoří po pár úhozech a jediné kliknutí ho otevře. Komponenta živého vyhledávání je znovupoužitelná: stejný mechanismus, který pohání globální vyhledávací pole, obsluhuje i dialogy pro výběr odkazů, vyhledávací okna ve formulářích i dialogy pro rychlý skok, roztroušené po celém rozhraní. Uživatel se vyhledávání naučí jednou a používá ho všude.
Pro cílenější hledání nabízí plný zážitek samostatná stránka vyhledávání. Najdete tu všechny odpovídající záznamy napříč všemi typy, seskupené podle typu, s filtry pro zúžení výsledků a se stejným přizpůsobením sloupců jako v běžném tabulkovém pohledu. Na tuto stránku míří uživatelé ve chvíli, kdy přesně nevědí, jaký typ vlastně hledají, nebo když si chtějí prohlédnout, jak výsledky vypadají, než se rozhodnou pro konkrétní záznam. Je to rozdíl mezi rychlým vyhledáním a pátráním.
Hledání napříč souvisejícími objekty je drobnost, která ale hodně změní. Vyhledání podle jména zákazníka může vynést nejen samotný záznam Zákazník, ale i Objednávky a Smlouvy, které na něj odkazují – rovnou s viditelným kontextem ve výsledku. Uživatel, který si objednávku pamatuje podle jména zákazníka, a ne podle jejího vlastního identifikátoru, ji tak stejně najde. V prostředí s dobře propojeným datovým modelem je právě tohle kontextové hledání často to první, u čeho si uživatelé všimnou, že platforma dává pozor.
Ohleduplné zacházení se speciálními znaky je funkce, která se v mezinárodních prostředích projeví nenápadně. Znaky s diakritikou se shodují se svými variantami bez diakritiky, v jednom indexu vedle sebe žije víc písem, interpunkce hledání nerozbije a na velikosti písmen nezáleží. Uživatelé píšou tak, jak přemýšlejí, a vyhledávání tomu odpovídá. Pro prostředí s obsahem ve více jazycích – jména zákazníků v několika písmech, popisy produktů v několika jazycích – je to rozdíl mezi vyhledáváním, které funguje všem, a takovým, které potichu nadržuje jedné skupině uživatelů.
Vyřazení citlivých polí je druhá strana téže mince. Některé vlastnosti – osobní poznámky, interní diagnostická pole, důvěrné komentáře u záznamu – by neměly být globálně vyhledatelné ani pro uživatele s širokým přístupem, prostě proto, že globální vyhledávání pro ně není to pravé místo. Správci mohou pole z indexování vyřadit, aniž by to ovlivnilo jejich viditelnost jinde. Index odráží to, co má být dohledatelné; samotný záznam zůstává nedotčený.
Klávesová zkratka do globálního vyhledávacího pole je poslední dílek, který z dobrého vyhledávání udělá to, čemu zkušení uživatelé dají přednost před klikáním v nabídkách. Pro každého, kdo si osvojil pár klávesových návyků, bývá tahle zkratka jedním z nejčastějších pohybů v celé aplikaci.
Přes REST API je vyhledávání dostupné jako samostatný koncový bod, se stejným chováním, které pohání rozhraní: respektuje oprávnění, zná typy a pracuje fulltextově. Integrace a externí frontendy tak mohou svým uživatelům nabídnout stejné vyhledávání, aniž by musely stavět vlastní index nebo udržovat druhou kopii pravidel oprávnění. Jeden zdroj pravdy o tom, co je dohledatelné a pro koho – a stejná odpověď z každého místa, které se zeptá. Vedle tohoto textu stojí za přečtení i článek o rolích a oprávněních a článek o REST API, protože vyhledávání leží přesně na jejich průsečíku.