Smart Search (e-shop)
Nastavení e-shopu v systému K2
Pro využití funkce Smartsearch na e-shopu je nejdříve nutné nakonfigurovat Elasticsearch v IS K2. Konfigurace je blíže popsána v části Elasticsearch - Konfigurace v K2.
Dalším krokem je nastavení konkrétního e-shopu, aby používal vyhledávání přes Elasticsearch.
V knize Weby a e-shopy se na záznamu pro daný e-shop přepneme do změny a stiskneme tlačítko Nastavení webu a e-shopu. Na záložce Vyhledávání zatrhneme Použít Smart Search vyhledávání.

Obr.: Použít Smart Search vyhledáváni
Na záložce Nastavení Smart Search definujeme oblasti vyhledávání pro našeptávač a pro výsledky hledání.

Obr.: Nastavení Elasticsearch indexů
Pomocí tlačítka Nastavení Elasticsearch indexů otevřeme konfiguraci Elasticsearch indexů.
Tlačítko Výchozí nastavení indexů nám vygeneruje základní indexy a doplní požadované údaje:
- Základní název indexů – pro pojmenování v databázi Elasticsearch. Vzhledem k možnosti provozovat vůči jedné instalaci Elasticsearch více e-shopů i z více různých instalací K2, je vhodné zvolit jednoznačný název, např. dle e-shopu.
- Název šablony indexů – pojmenování šablony indexů vytvořené v předchozím kroku. Pokud je např. šablona pojmenovaná jako web_search_cs, do tohoto pole uvedeme pouze web_search.

Obr. Nastavení indexů
Poznámka: Po rozkliknutí vytvořeného indexu se otevře formulář s jeho detailní konfigurací. Pro každý index lze nastavit, která pole mají být z K2 exportována a jak se má sestavovat hledací dotaz. Hledacím dotazem lze přímo ovlivňovat získané výsledky na webu, lze ovlivňovat prioritu jednotlivých analyzátorů a polí (název, popis, …). Podrobný popis možnosti tvorby hledacích dotazů je nad rámec této dokumentace. Podrobně je popsáno v dokumentaci Elasticsearch.
Tlačítkem Vytvoření všech indexů dojde k vytvoření všech potřebných indexů v Elasticsearch. Úspěšné vytvoření indexů je potvrzeno hlášením.

Obr. Úspěšné vytvoření indexů
Nakonec všechny dialogy potvrdíme a uložíme záznam v knize Weby a e-shopy.
V Nastavení Elasticsearch indexů, tabulka Indexy, máme možnost nastavení volitelných parametrů pro jednotlivé segmenty výsledků hledání. Například při zvoleném typu indexu Zboží si správce pomocí zatržítka zvolí, které synchronizace se mají v rámci aktualizace na daném segmentu propisovat (exportovat).

Obr.: Typ indexů - synchronizace
Popis polí:
Aktualizovat identifikační čísla |
Vyhledávání pouze v plném hledání. Pokud není vyplněné pole Typ čísla, nahrají se do elasticu všechny položky. Pokud bude hodnota Typ vyplněná, nahrají se pouze identifikační čísla, která mají vyplněna právě tento typ. |
|
Aktualizovat čárové kódy |
Vyhledávání pouze v plném hledání. |
|
Aktualizovat hledaná slova |
Vyhledávání v našeptávači i plném hledání. Vyhledávaná slova se vyhledávají přes překládaný popis, pokud není zadán, pak přes zkratku. |
|
Používat návrhy frází |
Volba Používat návrhy frází slouží k automatickému doplňování slov a víceslovných výrazů během psaní vyhledávacího dotazu v našeptávači na e-shopu. Při zapnuté volbě našeptávač:
|
|
|
Kombinovat slova z názvu zboží |
Pokud je zapnuta volba Kombinovat slova z názvu zboží, dochází k rozkladu názvu produktu na více částí. Příklad: Pro název Rock Machine Powerflex budou jako návrhy frází generovány také Machine Powerflex, Powerflex. Uživatel tak může začít psát libovolné slovo z názvu produktu (i uprostřed) a našeptávač mu nabídne odpovídající doplnění. |
|
Navrhovat názvy kategorií |
Do našeptávače se zahrnou také názvy e-shopových kategorií, což umožňuje rychlou navigaci přímo do konkrétní části sortimentu. |
|
Navrhovt názvy značek |
Do Elasticsearch indexu se zahrnou také názvy značek (např. K2, Ghost, Powerflex). Tyto značky se pak zobrazují v našeptávači jako samostatné návrhy. |
|
Navrhovat hledaná slova ze zboží |
Do našeptávače se zahrnou také hodnoty z pole Hledaná slova ze všech karet zboží publikovaných na e-shopu. Tato funkce umožňuje pracovat i s alternativními názvy, synonymy nebo obchodními označeními produktů. |
Import dat do Elasticsearch
Po základní konfiguraci a vytvoření indexů je nutné vyexportovat data do Elasticsearch. Pro první nahrání dat, případně vynucení ruční aktualizace, je možné použít akce, které jsou dostupné v prohlížení nad formulářem s nastavením indexů (viz předchozí kapitola).
K dispozici jsou 3 funkce:
- Kompletní import dat – nahraje z K2 veškerá data (zboží, kategorie, značky, blogové články) do Elasticsearch indexů.
- Aktualizace dat – nahraje do Elasticsearch pouze změněné záznamy od poslední aktualizace nebo kompletního importu dat.
- Reindexace aktuálního indexu - reindexace se používá, pokud se změnilo nastavení elasticsearch analyzátorů (např. způsob vyhledávání). Po reindexaci není potřeba aktualizovat samotná data z K2. Na rozdíl od vytvoření nových indexů a následném nutném kompletním importu dat, nedojde použitím této akce k dočasnému výpadku funkce vyhledávání na e-shopu. V případě doplnění nového pole do indexu je po reindexaci nutné vždy spustit kompletní import dat.
Po spuštění těchto akcí je zobrazen dialog se souhrnem, případně výpisem chybových stavů u jednotlivých záznamů.
Automatická aktualizace dat v Elasticsearch
Pro zajištění automatické aktualizace dat v Elasticsearch existuje speciální plánovaná úloha, která zajišťuje inkrementální aktualizace dat v Elasticsearch. Tato plánovaná úloha funguje na principu tzv. časových razítek (polí Timestamp), podle nichž vybírá záznamy změněné od poslední aktualizace a pouze tyto změněné záznamy exportuje z K2.
Plánovaná úloha je k dispozici v nabídce akcí - Web a e-shop / Elasticsearch: aktualizace dat pro e-shop/web.
Jediným parametrem plánované úlohy je výběr e-shopu, jehož data má tato plánovaná úloha aktualizovat.

Obr. Zástupce "Elasticsearch: aktualizace dat pro e-shop/web"
Nastavení K2 e-shopu pro použití Elasticsearch
Pro použití Elasticsearch je nutné nakonfigurovat i na straně K2 E-shopu umístěném na webovém serveru. Samostatná konfigurace je nutná z důvodu doporučeného umístění webu/e-shopu v DMZ, kdy je pravděpodobné, že bude Elasticsearch k dispozici pod jiným názvem/IP adresou než z vnitřního doménového prostředí. V konfiguračním souboru config.php je nutno doplnit tyto řádky:
$CONFIG['elasticEnabled'] = true;
$CONFIG['elasticHosts'] = [
[
'host' => 'k2providerweb',
'port' => 9200,
'scheme' => 'http'
]
];
Výsledky hledání a našeptávač na webu
Vzhled našeptávače a výsledků hledání je při použití Smart Search na webu odlišný než v případě klasického vyhledávání.
Do výsledků jsou dle nastavení v K2 zahnuty kromě produktů i kategorie, značky produktů, blogové příspěvky nebo parametry kategorie (např. horská, dětská, atd..)
V našeptávači je vždy zvýrazněn shodující se text.

Obr. Našeptávač na webu
Na stránce s výsledky vyhledávání jsou v horní části nejprve uvedeny nalezené značky, následně kategorie a pak teprve konkrétní produkty. Což umožní následné dofiltrování. Nabízí možnost řazení produktů podle vychozí, kódu vzest a sest., názvu vzest. a sest., ceny vzest. a sest. a doporučené.

Obr. Výsledky hledání
V případě, že je na hledaný výraz nalezeno velké množství produktů, je uživateli zobrazeno upozornění s přibližným počtem a zobrazeno pouze prvních 500 produktů.
Vyhledávání bez dotazu
Pokud je nastaveno Vyhledávání bez dotazu, viz kapitola Záložka Nastavení vyhledávání, začne našeptávač nabízet návrhy ještě před tím, než uživatel zadá jakýkoliv text do vyhledávacího pole. Tato funkce zvyšuje přehlednost a usnadňuje orientaci uživatelům e-shopu již při prvním kliknutí do vyhledávacího pole.
Našeptávač může uživateli nabídnout:
- produkty s vybraným štítkem,
- klíčová slova,
- kategorie,
- značky.

Obr.: Smartsearch našeptávač - Hledání bez dotazu
Návrhy frází
Pokud je nastaveno Používat návrhy frází, viz kapitola Nastavení e-shopu v systému K2, pak našeptávač nevyhledává pouze od začátku řetězce, ale pracuje s celým názvem nebo frází, případně rozkládá dotaz na jednotlivá slova.

Obr.: Smartsearch našeptávač - Návrhy frází
Vyhodnocení funkčnosti vyhledávání
Po nasazení Elasticserach je vhodné po čase vyhodnotit, jak dobře pro konkrétní data konkrétního e-shopu fungují použité analyzátory a použité definice hledacích dotazů. Za účelem vyhodnocení hledaných slov a výrazů je vhodné na webu nasadit Google Analytics. K2 e-shop následně do Google Analytics bude odesílat události pro každé hledání i zobrazení našeptávače. Kromě seznamu nejčastěji hledaných výrazů na webu získáme také seznam výrazů, pro které se nezobrazily žádné výsledky. Pokud se jedná o opakovaný výskyt takových slov, je nutné řešit, proč na tyto výrazy nedostávají uživatelé žádné výsledky. Buď je potřeba hledané fráze dostat do názvů a popisů kategorií a produktů nebo provést optimalizaci nastavení Smart Search.
Informace o hledaných výrazech jsou v Google Analytics k dispozici v sekci Chování/Události. Jedná se o události kategorie search – plné výsledky hledání a searchAutocomplete – výsledky zobrazení našeptávače.
Každá tato kategorie se dále člení:
- Akce – nabývá 2 možných hodnot:
- Results (byl vrácen nějaký výsledek) a
- ZeroResults (na hledaný výraz nebyla zobrazena žádná položka výsledků
- Štítek – obsahuje uživatelem zadaný hledaný výraz
Kromě sledování událostí je také doporučeno nakonfigurovat standardní analýzu vyhledávání v rámci Google Analytics (sekce Chování/Vyhledávání na webu). Tato sekce ale zobrazuje pouze výsledky plného vyhledávání, nezohledňuje průchod přes našeptávač. Pro nastavení plnění dat do této sekce je nutné v konfiguraci webu na stránkách Google Analytics v části Nastavení výběru dat zapnout volbu Sledování vyhledávání webu a doplnit Parametr v URL na hodnotu search.