Глобальний пошук і фільтрація
1) Роль глобального пошуку
Глобальний пошук - це «командна палітра» продукту: єдина точка входу до сутностей (ігри, провайдери, звіти, акції), дій («поповнити», «відкрити гаманець») та довідки. Хороший пошук:- розуміє намір (entity vs action),
- призводить до результату ≤ 1-2 кліка,
- стійкий до помилок введення і синонімів,
- безпечний і враховує права доступу.
Принципи: relevance> completeness, latency <200 мс до перших підказок, прозорі фільтри та сортування.
2) Сутності та наміри (Intent Model)
Класи запитів:- Сутності: гра, провайдер, турнір, звіт, платіжний метод.
- Дії: «депозит», «висновок», «створити звіт», «запросити афіліата».
- Навігація: «гаманець», «профіль», «налаштування».
- Довідка: «RTP», «ліміти», «KYC рівні».
UX-патерн: тип результату позначайте бейджем (Гра/Провайдер/Дія/Довідка), зверху - найбільш вірогідний тип по контексту (країна, роль, історія).
3) Вхідні точки і форм-фактори
Рядок в шапці (desktop) + хоткей'⌘/Ctrl + K'- відкриває палітру.
Іконка/пошук в таб-барі (mobile) - повноекранний модал.
Контекстні міні-пошуки: всередині каталогу фільтрують поточний список.
Плейсхолдер-підказка: «Знайдіть гру, провайдера або дію»....
4) Підказки та автодоповнення
З'являються через 150-250 мс, топ-N популярних/недавніх.
Секції результатів: «Недавні», «Популярні», «Сутності», «Дії», «Довідка».
Підсвічування збігів (highlight), діакритика і трансліт (Pragmatic/Прагматик).
Підтримайте помилки (fuzzy) і синоніми («вивід «= «withdrawal», «cashout»).
Keyboard-UX: стрілки/Enter/Tab; на мобайлі - великі таргети.
5) Фільтрація та фасети
Фасети (facets) - осмислені вимірювання:- Для ігор: провайдер, механіка (Megaways, cluster), волатильність, RTP, категорія (Live/Slots/Crash), теги.
- Для звітів: період, оператор, гео, валюта, статус.
- Для акцій/турнірів: дати, ставки, учасники, призи.
- Чіп-фільтри над результатами (вибрані фасети видно завжди).
- Multi-select у випадаючих списках; лічильники поруч з опціями.
- «Скинути все» і «Зберегти як пресет».
- На мобайлі - sheet з фасетами і кнопкою «Показати результати».
6) Розширений синтаксис (за бажанням)
Підтримайте легкий Query DSL:- `provider:"Pragmatic Play"`, `rtp:>=96`, `volatility:high`
- `type:live`, `tag:"buy bonus"`
- `market:CA currency:CAD`
- Автодоповнення підказує ключі/значення; користувачі-пауерюзери економлять час.
7) Ранжування (Relevance)
Сигнали:- Точність збігу (title, alias, синоніми).
- Популярність/конверсія (kliki→igra/depozit).
- Персональний контекст (історія, вибране, недавні).
- Доступність за ролями/юрисдикціями.
- Свіжість (нові релізи/акції - boost обмежено за часом).
Відображайте пояснення при зміні порядку («Нові релізи вище протягом 7 днів»).
8) Порожні та прикордонні стани
Немає результатів: запропонуйте зняти/послабити фільтри, показати популярне в поточній категорії, посилання на допомогу.
Занадто загальний запит: попросіть уточнити (показати «категорії»).
Помилки мережі: офлайн-текст, retry, збереження набраного рядка.
Обмеження доступу: «Недоступно у вашому регіоні/ролі» з CTA «Детальніше».
9) Безпека, права та комплаєнс
RBAC/тенантність: індекс і результати - тільки з доступного простору.
Geo-guard: приховуйте недоступні ринки/ігри.
PII-мінімізація: не виводити персональні дані в підказках.
Журнал запитів (знеособлений) для аудиту та поліпшення якості.
Фільтруйте запити на заборонені ключові слова (бренд-гайди, юридичні ризики).
10) Продуктивність і архітектура
Час до перших підказок ≤ 200 мс, до перших результатів ≤ 300-400 мс.
ІНДЕКС: інкрементальні оновлення, словники синонімів, n-gram/edge-ngrams для префіксів.
Кешування популярних запитів і підказок.
Debounce 150-250 мс, скасування застарілих запитів (abort/timeout).
SSR/стрімінг для першого екрану каталогу; потім клієнтська фільтрація.
Віртуалізація довгих списків результатів.
Локальні індекси (Web Worker) для клієнтської фільтрації вже завантажених наборів.
11) Доступність та локалізація
Роль'combobox '/' listbox', коректні'aria-', читання кількості результатів.
Фокус-менеджмент: повернення до рядка пошуку, Esc - закрити, Enter - перейти.
RTL: дзеркалюйте порядок чіпів і позицію іконок.
Терміни і фасети локалізовані, числові формати і валюти - по регіону.
12) Телеметрія і метрики
Події:- `search_open`, `search_type` (entity/action), `suggest_impression/click`,
- `query_submit`, `facet_apply/remove`, `preset_save/apply`,
- `result_click` (rank, id), `no_results`, `latency_ms`.
- Query → Result Click-Through (qCTR).
- Time-to-Result (перший клік/Enter).
- Zero-Result Rate (ZRR) і частка врятованих «порожніх».
- Facet Adoption %, Preset Adoption %.
- Action Success% (для намірів «депозит», «виведення»).
- Latency p95 підказок і повної видачі.
13) A/B-експерименти
Порядок секцій результатів (сутності vs дії).
Стратегія ранжування (популярність vs свіжість).
Сітка/лист результатів, кількість підказок.
Варіанти фраз в плейсхолдері/порожньому стані.
Чіп-фільтри зверху vs в бічній панелі (desktop).
Guardrails: INP/CLS, ZRR, скарги/помилки, RBAC-витоки = 0.
14) Патерни за сценаріями (iGaming)
Знайти гру: введення назви/провайдера → підказки (ігри, провайдери, теги). Фасети: категорія, провайдер, волатильність, RTP. Швидкі дії: «Демо», «Грати».
Платіжні дії: «депозит», «виведення» → дії першими. Диплинк в гаманець зі збереженням контексту.
Звіти оператора: 'ngr','arpdau'→ сутності «Звіти», фасети період/оператор/валюта; пресети: «Сьогодні», «Минулий тиждень».
Довідка/політики: 'RTP','ліміти','KYC'→ статті/FAQ, «зв'язатися в чат».
15) Антипатерни
Результати без типів (користувач не розуміє, що відкриває).
Підказки із затримкою> 500 мс (користувач «втрачає ритм»).
Фільтри без видимої індикації активних умов.
Скидання стану при «назад» (втрачається рядок і фасети).
Пошук, що повертає сутності без прав і з «доступ заборонений» по кліку.
Ігнорування помилок/синонімів, відсутність трансліту.
16) Чек-лист впровадження (покроково)
1. Каталог сутностей і дій (ID, аліаси, синоніми, права).
2. Індекс та ранжування: правила, скоупи, бусти (свіжість/популярність).
3. Підказки/автодоповнення: дебаунс, підсвічування, історія/популярне.
4. Фасети та чіпи: multi-select, лічильники, «скидання», пресети.
5. Порожні/помилки: тексти, альтернативи, офлайн-режим.
6. Перформанс: кеш, скасування запитів, віртуалізація, p95-цілі.
7. А11у/локаль: ролі ARIA, клавіатура, RTL, терміни.
8. Телеметрія та A/B: qCTR, ZRR, Time-to-Result, експерименти.
9. Безпека: RBAC в індексі і видачі, логи аудиту.
10. Документація: словник фасетів, приклади запитів, гайдинг для копірайту.
17) Підсумок
Глобальний пошук і фільтрація - це не один рядок, а екосистема швидкого знаходження. Перемагає те рішення, яке:1. точно розуміє намір і ранжує за корисністю,
2. відпрацьовує миттєво (підказки ≤ 200 мс),
3. дає прозорі фасети і зберігає контекст,
4. поважає права/гео і говорить зрозумілою мовою,
5. вимірює якість (qCTR/ZRR/Time-to-Result) і постійно поліпшується через A/B.