💬 Fráze (Autocomplete)
Fráze jsou návrhy zobrazované zákazníkům při psaní do vyhledávacího pole. Pomáhají uživatelům rychleji najít to, co hledají, a zároveň je navádí k produktům, které máte na skladě.
Jak fráze fungují?
Zákazník píše: "čer"
↓
┌─────────────────────────────────────┐
│ 🔍 červené víno │ ← Fráze s nejvyšším skóre
│ 🔍 červená čepice │
│ 🔍 černé tričko │
│ 🔍 červené šaty │
└─────────────────────────────────────┘
Automatické generování
Fráze se automaticky vytvářejí z historie vyhledávání vašich zákazníků. Když zákazník něco vyhledá a najde výsledky, systém si tuto frázi zapamatuje a příště ji nabídne ostatním.
Příklad:
- Zákazník vyhledá "zimní bunda pánská"
- Najde 45 produktů
- Fráze "zimní bunda pánská" se uloží do systému
- Příští zákazník začne psát "zim..." a uvidí návrh "zimní bunda pánská"
Inteligentní řazení
Fráze se řadí podle skóre, které zohledňuje:
| Faktor | Popis | Vliv |
|---|---|---|
| Popularita | Kolikrát byla fráze hledána za posledních 30 dní | Vysoký |
| Počet výsledků | Kolik produktů fráze najde | Střední |
| Specificita | Méně shod v autocomplete = specifičtější fráze | Střední |
| Čerstvost | Kdy byla fráze naposledy hledána | Střední |
| Délka fráze | Delší fráze = specifičtější dotaz | Nízký |
💡 Systém automaticky upřednostňuje fráze, které jsou aktuálně populární, vedou k relevantním výsledkům a jsou dostatečně specifické (nemají příliš mnoho shod v autocomplete).
Správa frází v administraci
Fráze najdete v menu Nastavení hledání → Fráze.
Přehled sloupců
| Sloupec | Význam |
|---|---|
| Výraz | Samotná fráze zobrazovaná v autocomplete |
| Výsledků | Počet produktů, které fráze najde ve fulltextovém vyhledávání |
| Frází | Počet shod v autocomplete (kolik dalších frází odpovídá tomuto výrazu) |
| Dotazů | Celkový počet vyhledání za celou dobu |
| Dotazů (30 dní) | Počet vyhledání za posledních 30 dní |
| Skóre | Vypočítané skóre pro řazení (vyšší = lepší pozice) |
| Poslední hledání | Datum posledního vyhledání této fráze |
| Viditelnost | Zapnuto/vypnuto zobrazení v autocomplete |
| Zvýraznění | Boost pro upřednostnění fráze |
💡 Rozdíl mezi "Výsledků" a "Frází":
- Výsledků = kolik produktů zákazník uvidí po kliknutí na frázi
- Frází = kolik našeptávaných frází systém nabídne při hledání tohoto výrazu
Filtrování a vyhledávání
Použijte vyhledávací pole pro rychlé nalezení konkrétní fráze. Můžete hledat podle:
- Části výrazu (např. "bund" najde "zimní bunda", "dámská bunda")
- Celého výrazu
Nastavení viditelnosti
Každou frázi můžete skrýt nebo zobrazit pomocí přepínače ve sloupci "Viditelnost".
Kdy frázi skrýt?
- ❌ Fráze vede k produktům, které již neprodáváte
- ❌ Fráze obsahuje překlepy nebo nesmyslný text
- ❌ Fráze je nevhodná nebo spam
- ❌ Fráze vede k vyprodaným produktům (dočasně)
Kdy frázi ponechat viditelnou?
- ✅ Fráze vede k relevantním produktům
- ✅ Zákazníci ji aktivně používají
- ✅ Fráze odpovídá vaší nabídce
⚠️ Skryté fráze se přestanou zobrazovat v autocomplete, ale zůstanou v systému pro případné opětovné zapnutí.
Zvýraznění (Boost)
Pomocí přepínače "Zvýraznění" můžete upřednostnit důležité fráze. Zvýrazněné fráze se zobrazují na prvních pozicích v autocomplete.
Kdy použít zvýraznění?
| Situace | Příklad |
|---|---|
| Sezónní akce | "vánoční dárky", "letní výprodej" |
| Nové produkty | "nová kolekce 2026", "právě skladem" |
| Marketingové kampaně | "sleva 50%", "doprava zdarma" |
| Vlastní značky | Název vaší privátní značky |
Příklad použití
Bez zvýraznění: Se zvýrazněním "vánoční dárky":
1. červené víno 1. vánoční dárky ⭐ (boost)
2. červená čepice 2. červené víno
3. vánoční dárky 3. červená čepice
💡 Zvýrazněné fráze mají absolutní prioritu. Používejte s rozvahou – příliš mnoho zvýrazněných frází sníží jejich efekt.
Ruční přidání fráze
Můžete přidat vlastní frázi, která se zobrazí v autocomplete bez ohledu na historii vyhledávání.
Postup
- Klikněte na tlačítko "Přidat frázi" v pravém horním rohu
- Zadejte text fráze (např. "nová kolekce jaro 2026")
- Klikněte na "Uložit"
Kdy přidat vlastní frázi?
- 🆕 Nový produkt nebo kategorie, kterou zákazníci ještě neznají
- 📢 Marketingová kampaň nebo sezónní akce
- 🏷️ Propagace konkrétní značky nebo kolekce
- 🔄 Přesměrování zákazníků na specifickou stránku
ℹ️ Ručně přidané fráze mají příznak "manual" a nejsou ovlivněny automatickým čištěním.
Automatická údržba
Systém provádí denní údržbu frází (každou noc ve 3:00):
Co se děje automaticky?
- Přepočet popularity – aktualizace počtu dotazů za posledních 30 dní
- Výpočet skóre – nové skóre na základě aktuálních dat
- Mazání zastaralých – automaticky generované fráze nehledané 90+ dní se smažou
- Mazání prázdných – automaticky generované fráze s 0 výsledky se smažou
⚠️ Důležité: Mazání se týká pouze automaticky generovaných frází. Ručně přidané fráze se nikdy nemažou – zůstávají v systému, dokud je ručně neodstraníte.
💡 Automatické mazání šetří místo v databázi a udržuje seznam frází relevantní.
Deduplikace frází
Systém automaticky spojuje podobné fráze pomocí kanonické formy.
Jak to funguje?
Zákazník A hledá: "pánské tričko bílé"
Zákazník B hledá: "bílé pánské tričko"
Zákazník C hledá: "Pánské Tričko Bílé"
↓ Normalizace (lowercase + sort slov)
Kanonická forma: "bílé pánské tričko"
Počet dotazů: 3
Tím se zabrání duplicitám a fráze získá správnou popularitu.
Algoritmus kanonické formy
- Převod na malá písmena
- Rozdělení na slova
- Seřazení slov abecedně
- Spojení zpět do řetězce
Příklady:
"Zimní Bunda Pánská"→"bunda pánská zimní""červené šaty"→"červené šaty""XL tričko modré"→"modré tričko xl"
Časté otázky (FAQ)
Proč některé fráze mají skóre 0?
Skóre 0 znamená, že fráze:
- Nebyla hledána déle než 30 dní
- Nemá žádné výsledky
- Byla právě vytvořena a ještě nebyl spuštěn přepočet
Jak dlouho trvá, než se nová fráze zobrazí?
- Automaticky generované: Ihned po vyhledání zákazníkem
- Ručně přidané: Ihned po uložení
- Změna viditelnosti/boostu: Do několika minut (po exportu do Elasticsearch)
Mohu smazat frázi úplně?
Automaticky generované fráze se mažou automaticky, pokud:
- Nemají žádné výsledky (produkt již neexistuje)
- Nebyly hledány déle než 90 dní
Ručně přidané fráze se nikdy nemažou automaticky. Pro jejich odstranění kontaktujte podporu.
Kolik frází se zobrazí v autocomplete?
Standardně se zobrazuje 5-10 frází (závisí na konfiguraci v Designeru). Zobrazují se fráze s nejvyšším skóre a případně zvýrazněné fráze na prvních pozicích.
Proč se moje zvýrazněná fráze nezobrazuje první?
Zkontrolujte:
- Je fráze viditelná (přepínač zapnutý)?
- Má fráze nenulový počet výsledků?
- Byl spuštěn export do Elasticsearch? (projeví se do několika minut)
Jaký je rozdíl mezi "Výsledků" a "Frází"?
| Sloupec | Co měří | Příklad |
|---|---|---|
| Výsledků | Počet produktů ve fulltextovém vyhledávání | "zimní bunda" → 45 produktů |
| Frází | Počet shod v autocomplete při psaní | "zim" → 12 našeptávaných frází |
Proč to rozlišujeme?
- Fráze s mnoha výsledky jsou užitečné (zákazník najde co hledá)
- Fráze s mnoha shodami v autocomplete jsou příliš obecné (např. "a", "the")
- Skóre penalizuje příliš obecné fráze, které by jinak zaplavily autocomplete
Doporučené postupy
✅ Doporučujeme
- Pravidelně kontrolovat fráze s vysokým počtem dotazů
- Zvýrazňovat sezónní a akční fráze
- Skrývat fráze vedoucí k vyprodaným produktům
- Přidávat fráze pro nové produkty/kategorie
❌ Nedoporučujeme
- Zvýrazňovat příliš mnoho frází najednou
- Ignorovat fráze s nulovými výsledky (mohou indikovat chybějící produkty v nabídce)
Technické detaily
Vzorec pro výpočet skóre
skóre = log₁₀(dotazy_30d + 2) × log₁₀(výsledků + 2) × specificita × bonus_délky × čerstvost
Kde:
- dotazy_30d – počet vyhledání za posledních 30 dní
- výsledků – kolik produktů fráze najde (results_count)
- specificita –
1 / (1 + log₁₀(frází + 2))– penalizace za příliš obecné fráze - bonus_délky –
min(délka_fráze / 10, 2)– delší fráze = vyšší bonus (max 2×) - čerstvost –
e^(-dní_od_hledání / 7)– exponenciální pokles (po 30 dnech = 0.1)
Datové toky
Zákazník hledá "zimní bunda"
↓
┌─────────────────────────────────────────────────────────────┐
│ SearchHistoryClass.savePhrase() │
│ - results_count = počet nalezených produktů │
│ - phrases_count = počet shod v autocomplete │
│ - canonical_term = normalizovaná forma ("bunda zimní") │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Tabulka: phrases │
│ - term, canonical_term, results_count, phrases_count │
│ - queries, queries_30d, last_search_date │
│ - computed_score, active, boost, manual, need_export │
└─────────────────────────────────────────────────────────────┘
↓ (CRON: phrase_maintenance.php - denně 03:00)
┌─────────────────────────────────────────────────────────────┐
│ 1. Přepočet queries_30d z search_history │
│ 2. Migrace canonical_term pro staré záznamy │
│ 3. Výpočet computed_score podle vzorce výše │
│ 4. Mazání zastaralých frází (ES → MySQL transakčně) │
└─────────────────────────────────────────────────────────────┘
↓ (CRON: phrases.php - každých 5 minut)
┌─────────────────────────────────────────────────────────────┐
│ Export do Elasticsearch (fráze s need_export = 1) │
│ - Bulk operace: create/update/delete │
│ - Po úspěchu: need_export = 0, version++ │
└─────────────────────────────────────────────────────────────┘
Elasticsearch mapping
{
"term": { "type": "keyword", "fields": { "ascii": {...}, "orig": {...} } },
"canonical_term": { "type": "keyword" },
"result_count": { "type": "integer" },
"phrases_count": { "type": "integer" },
"queries": { "type": "integer" },
"queries_30d": { "type": "integer" },
"computed_score": { "type": "float" },
"last_search_date": { "type": "date" },
"boost": { "type": "boolean" },
"language_code": { "type": "keyword" }
}
Export do Elasticsearch
Změny v administraci se exportují do Elasticsearch:
- Okamžitě: Při změně viditelnosti nebo boostu (s příznakem
need_export = 1) - Hromadně: Každých 5 minut běží CRON
phrases.phppro export - Denně: CRON
phrase_maintenance.phppřepočítá skóre a nastavíneed_export = 1
Další zdroje
- Nastavení vyhledávání – Synonyma, stopwords, fixit
- Designer – Konfigurace vzhledu autocomplete
- Analýza a reporty – Statistiky vyhledávání