Rubriky Tipy a triky, WordPress: Jak na to

Jak vylepšit ve WordPressu vyhledávání včetně hledání podle SKU ve WooCommerce

Standardní vyhledávací dotaz prohledává titulky článků a jejich obsah, pod pojmem „články“ mám na mysli taky vlastní typy článků (custom post types, viz článek Co jsou Custom Post Types, Taxonomy nebo Custom Field a jak je využít?). To přestává stačit v okamžiku, kdy váš web obsahuje množství různých dat, v nichž potřebujete vyhledávat. To se týká také e-shopu.

Funkce pro vyhledávání lze vylepšit pomocí několika pluginů. Není jich naštěstí moc, takže se člověk neztrácí při jejich výběru ve velkém množství balastu. Dva nejpopulárnější se jmenují Search Everything a Relevanssi. Oba dělají zhruba totéž – umožní vám vybrat si další datové struktury, které se mají prohledávat.

Dva pluginy pro vylepšené vyhledávání

První z nich, Search Everything, vyhledává v reálném čase, tzn. že po odeslání dotazu budete čekat, než se výsledky v databázi najdou. To může trvat dlouho, pokud do prohledávání zahrnete taky custom fields. Například ve WooCommerce se do custom fields ukládají vlastnosti produktů, takže při variantních produktech bude trvat prohledání všech hodnot docela dlouho (minimálně jednotky sekund).

Druhý, Relevanssi, na to jde jinak – pro vyhledání výsledků používá předem připravenou databázi. Nejprve si tedy po instalaci projde celou databázi WordPressu a podle parametrů, které zadáte, si uloží všechny možné výsledky (přesněji řečeno popis možných výsledků). Můžete si určit konkrétní custom fields, které se mají prohledávat. Pokud tedy chcete hledat podle SKU (stock keeping unit, česky předpokládám skladová jednotka), pak v nastavení do políčka Custom fields to index: zadejte _sku. Nezapomeňte pak kliknout na vytvoření nového indexu, tedy seznamu předpřipravených výsledků.

Vyhledávání podle SKU pomocí Relevanssi
Vyhledávání podle SKU pomocí Relevanssi

 

Pokud máte velký web, resp. hodně záznamů, které se musí naindexovat, pak je pravděpodobné, že proces skončí chybou 500. Abyste se tomu vyhnuli, použijte nahoře tlačítko Continue indexing a zadejte počet dokumentů, které se mají v tomto kroku zpracovat (jak velké číslo, to zjistěte zkoušením, než dojde k chybě). Až bude databáze výsledků (tzv. indexace) hotová, vyhledávání v ní je otázkou milisekund. Nasazovali jsme to na webu Art1.cz, kde jsou tisíce produktů a jejich variant, v databázi bylo přes 600 000 záznamů.

Indexace v Relevanssi
Kroková indexace v Relevanssi
Zajímavě vypadá taky plugin Ajax Search Lite, který zobrazuje výsledky ihned, jak píšete vyhledávací dotaz (to je ten AJAX). Netestoval jsem, jak je na tom s výkonem, u větších databází bych čekal zpomalené reakce.

Fazetové vyhledávání a filtrování

Specifický způsob hledání je tzv. fazetové vyhledávání (fazeta v tomto smyslu chápu jako aspekt, klíčová vlastnost). Funguje tak, že si ve vyhledávacím poli vyberete omezení na typ dokumentu nebo typ obsahu, kde se má vyhledávat. V podstatě jde o kombinaci filtru a vyhledávání. Typickým příkladem je plugin WP Ultimate Search nebo placený FacetWP. Plugin Search by WP Search umožní nastavit, jaké struktury se mají prohledávat a také nabízí fazety. Škoda, že má tak málo instalací (v době psaní článku jen 60) a autoři na něj přes rok nesáhli. WP Extended Search je na tom v tomto ohledu lépe, dokáže také prohledávat vlastní taxonomie nebo custom fields.

Fazety, tedy filtrování, se jako princip pro vyhledávání běžně používá v e-shopech, ale o tom bude speciální článek.

Indexovací stroje a rozsáhlé databáze

Když máte fakt velký web, zjistíte, že struktura databáze WordPressu není pro efektivní prohledávání ideálně navržena. Je to strašlivě pomalé, takže je potřeba vytvořit menší databázi s možnými výsledky (viz výše indexace) nebo zapojit další – trochu profesionálnější – nástroje. Jedním z nich je Apache Solr, serverová služba umožňující prohledávat velké zdroje dat. Abyste jejím prostřednictvím mohli prohledávat také WordPress, potřebujete plugin Solr Search for WordPress. Není to samozřejmě určeno pro jeden blog nebo web, jde o firemní až korporátní software (myšlen hlavně celý Solr).

Podobnou aplikací je ElasticSearch, stejně jako Solr využívá knihovny Lucene, což je jakýsi základ mnoha vyhledávačů (umí třeba hledat na úrovni slovních komponent v různých jazycích, tedy pozná předpony, přípony, kořeny slov atp).

Napojení na WordPress je možné díky ElasticPress nebo Fantastic ElasticSearch. Ale to už jsme opravu daleko od běžného firemního nebo osobního webu. Někdy příště se zaměříme na vyhledávání v produktech WooCommerce.

Foto: https://www.flickr.com/photos/31437555@N00/2561885967 by Jeffrey Beall

Napsat komentář