Vyhledávání na webu jednoduše

Datum publikace

Vyhledávání, které zvládne mít každý — statický index v prohlížeči místo databází, cache a real-time API. Open source, zdarma pro všechny.

Platforma

Vyhledávání na webu nemusí být velký projekt.

Když se řekne „vyhledávání na webu“, většině z nás naskočí složitá architektura kolem: dedikovaný vyhledávací engine jako Elasticsearch nebo OpenSearch (případně hostovaná služba typu Algolia), cache vrstva pro rychlost, real-time API pro našeptávač, indexovací pipeline a server, který to celé obsluhuje. Spousta práce, technologií a dotazů do databáze.

Přitom velká část webů potřebuje jen jedno: aby návštěvník napsal pár písmen a rychle našel správnou stránku. Pro tohle nepotřebujete celý vyhledávací backend.

Náš open source nástroj SimpleWebSearch jde záměrně opačnou cestou. Z webu vygeneruje vyhledávací index, který se servíruje jako obyčejný soubor a běží celý v prohlížeči. Žádná databáze, žádná cache, žádné API.

Vrealmatic/SimpleWebSearchOpen source · zdarma k použití · MITZobrazit na GitHubu
Hlavní myšlenka

Vyhledávání na webu může mít každý — bez složitých technických řešení. Index se vygeneruje předem, nasadí jako statický soubor a hledá se přímo v prohlížeči návštěvníka.

Proč je vyhledávání obvykle složité

Klasické řešení vyhledávání vznikalo pro velké, neustále se měnící aplikace. Obsah se indexuje do vyhledávacího enginu, výsledky se kvůli rychlosti drží v cache (třeba v Redisu), našeptávač se ptá real-time API a celé to musí být nasazené, monitorované a aktualizované.

Pro web, který se mění spíš po stránkách než po sekundách, je to zbytečně těžké. Platíte za běžící server a údržbu infrastruktury jen kvůli tomu, aby šlo na webu hledat.

Jednoduchý princip

Obsah webu je z velké části statický. Pokud je statický obsah, může být statický i index. A statický index nepotřebuje databázi ani běžící backend.

Jak to nástroj zjednodušuje

SimpleWebSearch rozděluje vyhledávání na dva oddělené kroky: vygenerování indexu a samotné hledání v prohlížeči. Tím odpadá celá „živá“ vrstva mezi nimi.

Při generování nástroj projde sitemapu webu, stáhne serverem vykreslené HTML, vytáhne z něj titulky stránek a nadpisy h1h6 a z toho sestaví připravený vyhledávací index (postavený na knihovně MiniSearch) společně s pomocnými soubory pro kontrolu.

Tyto soubory se nasadí jako běžné statické assety. V prohlížeči se index načte líně — až ve chvíli, kdy návštěvník zaměří vyhledávací pole — a hledání i našeptávač pak běží celé na straně klienta, bez jediného dotazu na server.

Rozdíl

Místo „databáze → cache → API → prohlížeč“ je výsledkem „index v souboru → prohlížeč“. Index se přegeneruje, když se mění obsah webu, ne při každém hledání.

„Statický“ tu znamená, že se hledá nad připraveným souborem — ne že je soubor zamrzlý. Generování lze spustit kdykoli: při každém deployi, podle plánu, nebo na vyžádání po změně obsahu. Index tak zůstává v souladu s webem, ale bez živé infrastruktury.

Kam ten soubor uložíte, je už jen otázka integrace. Můžete jej nasadit společně s webem, nebo jej držet nezávisle — třeba v objektovém úložišti jako Cloudflare R2 nebo S3 — a aktualizovat ho úplně bez redeploye webu.

Statický výstup, dynamický když potřebujete

Index lze kdykoli přegenerovat a vyměnit. Když ho oddělíte od deployů — například servírováním z objektového úložiště — může se vyhledávání aktualizovat ve vlastním rytmu, nezávisle na webu.

Co nástroj umí

I když je cílem jednoduchost, nástroj zvládne to, co od vyhledávání na webu opravdu čekáte.

Generování ze sitemapy

Projde strom sitemapy včetně vnořených sitemap, ošetří cykly i duplicity URL a respektuje noindex a kanonické odkazy.

Hledání v prohlížeči

Vyhledávání běží celé na straně klienta nad knihovnou MiniSearch — s fuzzy hledáním (tolerance překlepů) a hledáním podle předpony pro našeptávač.

Výběr obsahu

CSS selektory určují, které části stránky se mají indexovat a které vynechat. Váhy podle úrovně nadpisu řídí, co je v hledání důležitější.

Více jazyků

Vícejazyčné weby používají sdílený klient a oddělená data pro každý jazyk, včetně vlastních stop slov (čeština, angličtina i další).

Nástroj počítá s progressive enhancement: vyhledávací pole může mít i klasický <form> jako zálohu, takže funguje i ve chvíli, kdy se klientský skript ještě nenačetl.

Co když se obsah webu změní?

Index přegenerujete — a to ve chvíli, kdy se vám to hodí: při každém deployi, podle plánu, nebo na vyžádání hned po publikování nového či upraveného obsahu. Nový soubor jednoduše nahradí starý.

Protože je výstupem jen soubor, nemusí být svázaný s deploy pipeline webu. Uložený v objektovém úložišti jako Cloudflare R2 se index může obnovovat samostatně, nezávisle na tom, kdy se nasazuje samotný web — bez serveru a bez údržby.

Open source pro každého

SimpleWebSearch je open source a může jej použít kdokoli. Kód i postup jsou veřejně dostupné na GitHubu, takže si nástroj můžete prohlédnout, nasadit a přizpůsobit podle svého webu.

Není to jen ukázka. Stejný nástroj používáme i my v rámci našich webových služeb — proto víme, že v praxi funguje, a proto jej dál vyvíjíme.

Dostupné všem

Jednoduché vyhledávání by nemělo být výsada velkých projektů s rozpočtem na infrastrukturu. Proto je nástroj open source a zdarma k použití pro kohokoli.

Shrnutí

Vyhledávání na webu může být jednoduché. SimpleWebSearch vygeneruje ze sitemapy index, servíruje se jako obyčejný soubor a hledá se přímo v prohlížeči — bez databáze, cache i real-time API. Přegenerujete ho, kdykoli se web změní, a uložíte tam, kde se vám to hodí.

Odpadá tak většina práce, technologií i nákladů, které se s vyhledáváním obvykle pojí, a zůstává rychlé a praktické hledání po webu.

Vrealmatic consulting

Chcete jednoduché vyhledávání na svém webu?

Pomůžeme vám přidat rychlé statické vyhledávání bez search backendu — vygenerované ze sitemapy, servírované jako obyčejné soubory a běžící celé v prohlížeči. Open source a zdarma k použití.

Kontaktujte nás