Přeskočit na hlavní obsah

💬 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:

  1. Zákazník vyhledá "zimní bunda pánská"
  2. Najde 45 produktů
  3. Fráze "zimní bunda pánská" se uloží do systému
  4. 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:

FaktorPopisVliv
PopularitaKolikrát byla fráze hledána za posledních 30 dníVysoký
Počet výsledkůKolik produktů fráze najdeStřední
SpecificitaMéně shod v autocomplete = specifičtější frázeStřední
ČerstvostKdy byla fráze naposledy hledánaStřední
Délka frázeDelší fráze = specifičtější dotazNí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ů

SloupecVýznam
VýrazSamotná 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óreVypočítané skóre pro řazení (vyšší = lepší pozice)
Poslední hledáníDatum posledního vyhledání této fráze
ViditelnostZapnuto/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í?

SituacePří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čkyNá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

  1. Klikněte na tlačítko "Přidat frázi" v pravém horním rohu
  2. Zadejte text fráze (např. "nová kolekce jaro 2026")
  3. 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?

  1. Přepočet popularity – aktualizace počtu dotazů za posledních 30 dní
  2. Výpočet skóre – nové skóre na základě aktuálních dat
  3. Mazání zastaralých – automaticky generované fráze nehledané 90+ dní se smažou
  4. 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

  1. Převod na malá písmena
  2. Rozdělení na slova
  3. Seřazení slov abecedně
  4. 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:

  1. Je fráze viditelná (přepínač zapnutý)?
  2. Má fráze nenulový počet výsledků?
  3. Byl spuštěn export do Elasticsearch? (projeví se do několika minut)

Jaký je rozdíl mezi "Výsledků" a "Frází"?

SloupecCo 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)
  • specificita1 / (1 + log₁₀(frází + 2)) – penalizace za příliš obecné fráze
  • bonus_délkymin(délka_fráze / 10, 2) – delší fráze = vyšší bonus (max 2×)
  • čerstvoste^(-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.php pro export
  • Denně: CRON phrase_maintenance.php přepočítá skóre a nastaví need_export = 1

Další zdroje