8 Samoobslužný výkonný vyhledávací 🔍 Software pro váš produkt
Může se to zdát jako náročný úkol, ale integrace efektivní funkce vyhledávání do vaší aplikace nemusí být složitá ani časově náročná. Podívejte se na několik ověřených doporučení!
Zatímco se v posledních dvou až třech dekádách objevilo mnoho inovativních technologií, vyhledávání se stalo jednou z mála, která se stala neodmyslitelnou součástí našich každodenních životů. Je přítomno všude – na webových stránkách pro e-commerce, na blozích, ve znalostních databázích a jinde – a to ne proto, že vyhledávací pole s ikonou vypadá atraktivně, ale protože uspokojuje naléhavou potřebu.
Jak byste postupovali, pokud byste se jako podnikatel poohlíželi po kvalitním řešení vyhledávání, nebo pokud jste nespokojeni se stávajícím systémem?
Dobrá zpráva je, že nemusíte platit přemrštěné licenční poplatky ani zaměstnávat rozsáhlý tým vývojářů a systémových administrátorů. Dnes vám představím několik vyhledávacích nástrojů, které lze snadno nainstalovat a integrovat, což je výhodné zejména pro menší firmy s malými vývojářskými týmy.
MeiliSearch
Mezi nejlepší a nejefektivnější vyhledávací enginy patří MeiliSearch.
Co mě tedy vede k tomu, že MeiliSearch řadím mezi moje top doporučení?
Zde je několik důvodů:
Open Source
Veškerý zdrojový kód MeiliSearch je volně dostupný na platformě GitHub. To umožňuje vývojářům prozkoumat jakoukoli část kódu. Firmy si tak mohou být jisty kvalitou a transparentností celého systému (bez skrytých zadních vrátek nebo skenerů). Zkušení vývojáři navíc mohou přispět k dalšímu vylepšování této technologie.
Skvělé uživatelské rozhraní
MeiliSearch nepoužívá složitá pravidla (například "a – b" znamená "a", ale ne "b"). Stačí přirozeně zadat vyhledávací dotaz a výsledky se začnou okamžitě zobrazovat. Vyhledávací systém je velmi tolerantní a intuitivní a poskytuje relevantní výsledky i při použití překlepů nebo synonym. Navíc podporuje více jazyků.
Výborné vývojářské rozhraní
Vývojáři si MeiliSearch oblíbí. Je nejen přizpůsobitelný a škálovatelný, ale také nabízí rozhraní REST API. Dokumentace je také excelentní a obsáhlá. I když je volání HTTP v jakémkoli programovacím jazyce poměrně jednoduché, pro ty, kdo pospíchají, jsou k dispozici příklady v pěti jazycích (JavaScript, Ruby, Python, Golang a PHP).
Jednoduché vyhledávací systémy by měly být snadno použitelné a konfigurovatelné. MeiliSearch splňuje všechny tyto požadavky. Jakmile budete s nastavením spokojeni, můžete ho snadno spustit na DigitalOcean pomocí jednoho kliknutí.
Solr
Solr, součást projektu Apache, je na trhu již řadu let. Je postaven na osvědčené a spolehlivé knihovně Lucene, která pohání i oblíbené vyhledávací řešení ElasticSearch. To vše znamená, že Solr patří mezi nejvýkonnější, škálovatelné, standardní, funkčně bohaté a důvěryhodné vyhledávací systémy.
Používají ho společnosti jako Disney, eBay, Netflix, Zappos a BestBuy. Nicméně to neznamená, že si nemůžete zprovoznit menší a jednodušší instalaci (například na jednom počítači bez škálování a zálohování – což je pro začátek dostačující) a využít potenciál tohoto mocného nástroje.
Proč tedy používat Solr?
Zde je několik důležitých důvodů:
Přesný a výkonný
Solr se řadí mezi nejpřesnější, nejvýkonnější a nejpropracovanější vyhledávací systémy na světě. Navíc je open-source, což vysvětluje, proč si ho oblíbily velké společnosti. Jeho schopnost analyzovat dokumenty a reagovat na vyhledávací dotazy je bezkonkurenční.
Jednoduchá instalace a údržba
Instalace Solr je stejně snadná jako rozbalení a spuštění programu. U jednoduchých systémů na jednom serveru není potřeba žádná složitá údržba; stačí sledovat využití operační paměti, protože vyhledávací systémy obecně a technologie založené na Javě mohou být náročné na paměť (protože se snaží ukládat vše v paměti RAM pro rychlý přístup).
Administrační rozhraní
Solr nabízí administrátorský panel, který umožňuje vizuální sledování a konfiguraci. I uživatelé bez vývojářských dovedností se mohou naučit číst základní statistiky. Mnoho vyhledávacích systémů tuto funkci nenabízí.
Zdroj obrázků: Oficiální stránky
Řízené API, splňující standardy
Solr poskytuje výstupní rozhraní API, které podporuje různé formáty – JSON, CSV, XML a binární. Monitorovací data generuje ve standardu JMX, což je výhodné pro vývojáře, kteří pracují s Javou.
O výhodách Solru by se dalo mluvit mnohem déle, ale snaha o vyčerpání všech témat by nás zdržela na dlouhou dobu. 😂 Stačí říci, že Solr je špičkové řešení, se kterým neuděláte chybu, ať už pracujete s jakýmikoli daty.
Elasticsearch
Elasticsearch byl a pravděpodobně stále je průkopníkem v oblasti fulltextového vyhledávání. I dnes, když se zeptáte programátora nebo správce systému na doporučení v oblasti vyhledávacích systémů, Elasticsearch bude s největší pravděpodobností první jméno, které mu napadne. Samozřejmě, v dnešní době hodně lidí doporučí například Algolia, ale jak už jsme si řekli, o tom nemluvíme. 🤪

Nenechte se zmást tlačítkem "Zahájit bezplatnou zkušební verzi" na obrázku výše. Zatímco základní technologie Elasticsearch je open-source a zdarma, společnost se snaží zpeněžit své úsilí a zaměřuje se na firmy. To, co zde vidíte, je vlastně zkušební verze jejich cloudové služby, která usnadňuje správu Elasticsearch, zejména pokud se jedná o clustery.
Je toho hodně, co je potřeba rozmotat. Pojďme si to shrnout: Elasticsearch je open-source a zdarma, a kdokoliv si ho může snadno nastavit a používat bez jakýchkoli omezení.
Nyní se, jak se dalo očekávat, podívejme na důvody, proč si vybrat Elasticsearch:
- Osvědčený, robustní vyhledávací systém. To znamená, že je mnohem pravděpodobnější, že najdete řešení, pokud narazíte na neobvyklé problémy.
- Zaměření na clustering, škálovatelnost a asynchronní zápisy.
- Přístup přes jednoduché REST API (které nakonec všichni ostatní okopírovali).
- Orientace na dokumenty, ale v případě potřeby podporuje schémata.
- Extrémně rychlé a přesné výsledky. Nastavitelná rychlost vyhledávání.
- Výborná dokumentace, co do objemu i užitečnosti.
- Kompletní cloudová platforma pro vyhledávání a analýzu (ELK stack), pokud chcete platit za komfort.
Jediné, co bych mohl Elasticsearch vytknout, je jeho masivní spotřeba paměti RAM. Jako konzultanti máme problém přesvědčit klienty, aby investovali do serveru za 20 dolarů měsíčně, což je bohužel málo na to, co Elasticsearch vyžaduje.
Pokud se chcete naučit používat Elasticsearch, podívejte se na tento kurz na Udemy.
Typesense
Typesense je lehký, jednoduchý, ale zároveň výkonný vyhledávací systém. Ti, kdo hledají užitečnost a jednoduchost, by ho rozhodně měli vyzkoušet.

Jedna z nejlepších věcí na Typesense je, že si ho můžete vyzkoušet přímo na jejich webových stránkách. To může ušetřit zklamání a čas v případech, kdy si vše nastavíte a zkusíte API, jen abyste zjistili, že jedna nebo více funkcí nefunguje, jak byste si představovali.
Neznamená to, že by motor mohl mít chyby; jen to, že to, jak motor něco chápe, nemusí odpovídat vašim preferencím nebo může být zcela v rozporu s vaším oborem. Překlepy, speciální symboly, synonyma a další... Výsledky, které engine vrací, můžete zkontrolovat přímo na hlavní stránce (používají k tomu databázi knih).

Jak vidíte, tato sekce je hned pod tou nejvyšší. Do vyhledávacího pole jsem zadal "tra" a níže vidím odpovídající výsledky z databáze knih (spolu s metadaty – celkové výsledky, aktuální stránka atd.).
Typesense má co nabídnout, pokud jde o výběr vyhledávacího systému:
- Technologie je plně open-source a přívětivá.
- Snadné nastavení HA (High Availability), pokud ho potřebujete.
- Tolerantní k překlepům a dalším chybám ve vyhledávacích dotazech.
- Pokročilý systém filtrování pro ty, kteří chtějí mít jemnou kontrolu nad výsledky vyhledávání.
- Jednoduché REST API, i když najít jeho dokumentaci vyžaduje trochu úsilí.
- Klienti (SDK) jsou k dispozici pro několik hlavních jazyků (JavaScript, Python, Ruby a PHP).
A nakonec, pokud vám myšlenka nastavování nových serverů připadá únavná, Typesense nabízí i cloudovou verzi, kde je zprovoznění otázkou jediného kliknutí. Platí se za hodinu používání a čtení a zápis se neměří. Upřímně řečeno, řekl bych, že je to lepší volba pro většinu firem, pokud si dopředu spočítají náklady a zajistí si, že se jim to vyplatí.
Shrnuto, Typesense dává velký smysl (bez slovní hříčky!), pokud potřebujete něco malého, elegantního, přesného a spolehlivého.
Sonic
Sonic se prezentuje jako alternativa k Elasticsearch, která běží na "několika MB RAM".
Jak je to možné?
O Java Virtual Machine (JVM) je známo, že je velmi náročný na RAM (už samotné spuštění JVM zabere zhruba 1 GB paměti RAM); není tedy překvapivé, že něco napsaného v jazyce Rust (který poskytuje plnou kontrolu a bezpečnost paměti pro vývojáře) může běžet stejně rychle, a přitom spotřebovávat jen několik MB RAM.
Klid, všichni! To je jen maskot projektu.
V době psaní článku bylo mezi uživateli uvedeno několik společností, ačkoli jsem si jistý, že existuje i mnoho dalších, které se nezabývaly přidáváním svého jména. Sonic jsem objevil už dříve; i když mě tenkrát potěšila alternativa s nízkou spotřebou paměti, myslel jsem si, že bude potřebovat čas na stabilizaci a odstranění skrytých chyb. No, vypadá to, že se jim to víceméně podařilo; jak populární Sonic bude, ukáže až čas.
Dobře, teď už dost úvah, proč byste měli zvážit použití Sonic pro vaši organizaci/projekt?
Zde je několik důvodů:
- Extrémně nízká spotřeba paměti v porovnání s jinými vyhledávacími systémy.
- Knihovny jsou dostupné pro všechny hlavní programovací jazyky. Node, PHP a Rust jsou ty, které vydali samotní autoři, zatímco ostatní vytvořila komunita (můžete se radovat, protože jsou pokryty i exotičtější jazyky jako Elixir a Nim!).
- Je podporováno několik jazyků (bylo jich příliš mnoho na počítání, ale myslím, že v době psaní je jich 40–50).
- Překvapení! Můžete používat i nové jazyky a engine bude fungovat (😂😂), i když přijdete o některé pokročilé funkce, jako jsou stop slova.
- Velmi rychlý engine. Pokud se podíváte na jejich stránku na GitHubu, zjistíte, že doby příjmu a vyhledávání se v několika případech pohybovaly v mikrosekundách! Samozřejmě, jednalo se o testování na jednom počítači, protože latence sítě nikdy nedovolí, aby čísla byla tak nízká.
Pokud chcete vidět tento engine v akci, podívejte se na tento odkaz (na stránky jedné z jejich uživatelských společností) a pohrajte si s vyhledávacím polem, které tam uvidíte:

Sonic jako vyhledávací systém má určitá omezení. Vývojáři je otevřeně popsali a diskutovali na své stránce na GitHubu. Doporučuji vám si tento seznam pečlivě prostudovat a zjistit, zda vaše případy použití nejsou v rozporu s jejich doménou. To znamená, že vše má svá omezení; jen bývají skrytá a my si to neuvědomujeme, dokud není příliš pozdě. Sonic proto považuji za skvělou volbu.
TNTSearch
Nyní máme na seznamu fascinující položku. První zajímavostí je, že tento plně funkční a produkčně připravený vyhledávací systém je napsán v PHP!
Ano, ze všech možných jazyků právě v PHP. A neříkám to proto, že bych PHP nenáviděl, ale protože je to proces, který má krátkou životnost.

Druhou zajímavostí je jejich licence, alespoň v době psaní. Samotná licence je MIT, takže zde nejsou žádné problémy, ale autoři tento software klasifikují jako PS4Ware; pokud používáte TNTSearch v produkčním prostředí, měli byste jim poslat hru pro PS4! 😂 To není povinné, jak naznačuje "měli byste", ale je to neuvěřitelně vtipné. Doufám, že ji upgradují na licenci PS5, i když je na to ještě brzy.
Každopádně, sám pocházím ze silného prostředí PHP + Laravel, velmi si cením snahu těchto lidí. Jejich webové stránky toho moc neříkají, ale zdá se, že naznačují, že se jedná o konzultanty, takže vám vřele doporučuji, abyste je kontaktovali, pokud máte nějaké projekty!
Existují nějaké důvody, proč používat TNTSearch ve vašich projektech?
Ano, existují:
- Kódováno v PHP, pro PHP, pomocí PHP. Ekosystém PHP potřebuje více specializovaných a vysoce kvalitních řešení, jako je toto.
- Důležité funkce, jako je fuzzy vyhledávání, geografické vyhledávání a klasifikace textu.
- Snadná změna indexu vyhledávání, což u mnoha řešení chybí hlavní flexibilita.
- Stemming, hodnocení BM25 a vlastní tokenizace zajišťují vysokou přesnost.
- Snadné nasazení – jako jakýkoli jiný balíček Composer!
Zde si můžete ověřit výkon enginu a sami se přesvědčit, jak je rychlý a přesný. Ještě jednou bych zdůraznil aspekt PHP: pokud spravujete projekt v PHP, chcete se co nejvíce držet PHP (proč? Pomyslete na náklady rekvalifikace). A pro takové případy nabízí TNTSearch hodnotu, kterou je těžké odmítnout!
Vespa
Vespa je komplexní a náročný produkt. Stejně jako několik dalších položek v tomto seznamu je příliš rozsáhlá na to, abychom ji popsali jen několika slovy. Ale pokusím se o to. 🙂 Vespa je vyhledávací systém, ano, ale jeho použití jako obyčejného vyhledávače by bylo plýtváním jeho potenciálem.
Vespa byla vytvořena pro zpracování obrovského množství dat (Big Data) a navíc nabízí funkce strojového učení a nekonečné možnosti přizpůsobení.

Vespa se prezentuje jako konkurent Elasticsearch a tradičních databází a nabízí srovnání, co a kdy použít.

Jak vidíte, čím blíže se chcete dostat k operacím založeným na strojovém učení, tím více smyslu dává Vespa. Jako čistě vyhledávací systém pro malé a střední firmy si nemyslím, že by měl oproti jiným možnostem nějaké výhody.
Pokud ale generujete obrovské množství dat a chcete zlepšit rozhodování prostřednictvím AI/ML (což je dnes případ mnoha SaaS společností), Vespa dává velký smysl:
- Open source: Žádné podivné licence a žádné omezující smlouvy. A navíc nic, za co byste museli platit, i když vždy zdůrazňuji, že by společnosti měly pravidelně přispívat na projekty, které nejvíce využívají (i 50 dolarů měsíčně jim hodně pomůže).
- V reálném čase: Vespa je skutečně v reálném čase. Nejenže umí data analyzovat a vyhledávat, jak přicházejí; ale i její konfigurace se dá upravovat za běhu.
- Škálovatelná a tolerantní k chybám: Škálování Vespa je triviální. Velmi dobře reaguje i na náhlé výpadky uzlů a poskytuje vysokou spolehlivost.
- Hodnocení a doporučení: Doporučení pro vyhledávání, hodnocení a Vespa se dají kombinovat se strukturovanými dotazy, aby se dosáhlo skutečně přesných výsledků.
- Snadné použití AI/ML: Vespa nabízí vysoce kvalitní, předem natrénované ML modely. K čištění a používání vašich dat nepotřebujete zaměstnávat 20 datových vědců.
- Vlastní pluginy: Existuje celá sada API pro vývojáře, kteří si mohou vytvářet vlastní pluginy v Javě, pokud chtějí změnit, jak engine funguje.
Vespa je bezpochyby velká a komplexní, proto je určena pro týmy, které jsou o krok dál – ať už jde o velikost týmu, technologickou zdatnost, rozpočet na infrastrukturu, denní objemy dat nebo cokoliv jiného. V tomto segmentu je Vespa ideální a vřele ji doporučuji.
Ambar
U některých firem se data pro vyhledávání již neukládají upravená a jako JSON dokumenty; spíše jde o chaos v pravém slova smyslu – chaotickou sbírku nejrůznějších dokumentů, jako jsou soubory Word, PDF, HTML a podobně. Pokud jste jedním z nich a mysleli jste si, že pro vás není žádná naděje, seznamte se s Ambarem!

Nejlepší na Ambaru je široká škála typů souborů, se kterými umí pracovat:
- Formáty souborů MS Office (.docx, .xlsx atd.), včetně PowerPointu, Visia a Publisheru!
- Formáty souborů OpenOffice
- PDF dokumenty s automatickým OCR, které se používá k extrahování informací.
- Obrázky
- Formáty e-mailových archivů, jako je PST (zdravím uživatele Outlooku!)
- E-mailové zprávy s přílohami
A tím to zdaleka nekončí. Ambar dokáže pracovat s velkými soubory (nad 30 MB), ZIP archivy a používá multithreading pro plné využití procesoru a rychlejší výsledky. Takže pokud máte na nějakém zapomenutém serveru dokumenty ze starých časů, je na čase je obnovit a svěřit Ambaru!
Závěr
Vyhledávání 🔎 je silné, vyhledávání je kouzelné a vyhledávání je všude!
Může to být i černá magie, ale dnes není důvod, proč by její výhody nemohli využívat všichni (samozřejmě s pomocí vývojářů). Od firem přes jednotlivce až po vlády, vyhledávací systémy v tomto seznamu nabízejí řešení s minimální námahou a exponenciálními výhodami a dopadem.
Zprovozněte si cloudový server a nainstalujte si výše uvedený vyhledávací software, který chcete používat.