Розумний пошук для сайту

8 хв

Пошук на сайті — це місце, де магазин втрачає гроші найшвидше: покупець уводить «айфон 15 про», не отримує нічого через зайвий пробіл або іншу розкладку й іде до конкурента. Розумний пошук Elbuz замінює рядок пошуку вашого сайту на власний віджет, який шукає по каталогу Elbuz, розуміє помилки, синоніми й фотографії, а заразом рахує, що саме в нього питають.

Працює це не всередині вашого сайту, а окремим пошуковим сервісом: каталог із Elbuz заздалегідь потрапляє в його індекс, а віджет на сторінці звертається до сервісу. Тому пошук не навантажує сайт і однаково працює на будь-якій CMS.

Де це у програмі

Налаштування
вікно «Категорії» → плитка «Налаштування віджету - Розумний пошук»
Що всередині
вкладки: можливості пошуку, інформація про магазин, посилання, ціни, обмеження, вигляд
Аналітика
вікно «Аналітика розумного пошуку»
Що знадобиться
доступ до шаблону вашого сайту, щоб вставити код у <head>
Картка віджета розумного пошуку: перемикачі можливостей, адреса сайту й CSS-селектори
1Вкладки налаштувань
2Пошук по картинці
3Гібридний пошук AI + текст
4Адреса сайту
5Селектор CSS для заміни поля пошуку
  1. Налаштування розбиті на вкладки: можливості пошуку, інформація про магазин, посилання, ціни, обмеження, вигляд.
  2. Пошук по картинці, голосовий пошук і пошук за атрибутами вмикаються окремими перемикачами.
  3. Гібридний пошук поєднує текстовий пошук зі змістовим — знаходить за описом, а не лише за збігом слів.
  4. Адреса сайту, на якому працюватиме віджет.
  5. CSS-селектор елемента, який віджет замінить собою; для мобільної версії задається окремий селектор кнопки.

Крок 1. Підключення до сайту

Підключення — це два рядки налаштувань і один вставлений код.

  1. Адреса сайту — на якому працюватиме віджет.
  2. CSS-селектор для заміни поля пошуку — те місце сторінки, куди стане віджет. Зазвичай це #search або клас рядка пошуку вашої теми. Окремо задається селектор кнопки пошуку на мобільній версії: там рядок часто ховається під значок лупи.
  3. Код інтеграції — скопіюйте його з картки віджета й вставте у <head> сайту. Це невеликий скрипт, який сам підвантажує актуальну версію віджета.

Для типових платформ у картці є поля CMS ID й CMS theme — вони підказують віджету, як улаштована верстка. Побачити результат до вставки на бойовий сайт можна кнопкою «Відкрити демо сайт».

Кнопка «Отримати інформацію з сайту» заповнює за вас блок відомостей про магазин: назву, адресу, телефон, пошту, час роботи, способи доставки й оплати, посилання на соцмережі. Ці дані віджет показує в підказках і використовує чат, тому заповнити їх варто одразу.

Крок 2. Пошуковий індекс

Поки індексу немає, пошук нічого не знайде: сервіс шукає не у вашій базі наживо, а у власному індексі. Кнопка «Створити пошуковий індекс» будує його наново, а галочки поруч вирішують, що саме індексувати:

  • Товари — основне;
  • Категорії — щоб у результатах були розділи, а не тільки товари;
  • Атрибути — потрібні, щоб працювали фільтри за характеристиками й пошук за ними;
  • Відгуки — щоб пошук ураховував тексти відгуків;
  • Статті — пошук по вашому блогу чи довідковим сторінкам.

Побудова індексу для великого каталогу — операція на десятки хвилин, і запускати її щодня не треба. Достатньо переіндексувати після серйозних змін: масового завантаження товарів, зміни структури категорій, додавання мови. Поточні зміни цін і наявності потрапляють в індекс без повної перебудови.

Окремий перемикач «Навчання AI» вмикає розширене навчання на основі вашого каталогу — саме воно дає пошуку розуміти запит, у якому немає жодного слова з назви товару.

Що вміє пошук

МожливістьЩо дає
Гібридний пошук AI + текстпоєднує звичайний текстовий пошук зі змістовим: знаходить «щось для миття вікон», а не тільки точні збіги слів
Перевірка орфографії через AIвиправляє помилки в запиті. У відповіді видно й виправлений варіант
Синонімиваш словник відповідностей у форматі слово1;слово2: «холодос» знайде холодильники
Пошук за атрибутамишукає за характеристиками й показує фільтри підбору за ними
Пошук по картинціпокупець завантажує фото — сервіс шукає схожі товари
Голосовий пошукзапит диктують у мікрофон
Уточнювальні підказкичипи над результатами: ШІ пропонує звузити запит
Пошук по всіх мовахзапит шукається в усіх мовах каталогу, а не тільки в поточній
Тільки в наявностівідсутні товари взагалі не показуються
Спочатку в наявностівідсутні не ховаються, але йдуть у кінець списку

«Тільки в наявності» й «Спочатку в наявності» — різні стратегії, і вибір між ними видно по аналітиці. Якщо запитів багато, а конверсія низька, покупці часто натрапляють на «немає в наявності»: тоді допомагає перший варіант. Якщо асортимент вузький, краще другий — інакше пошук виглядатиме порожнім.

Вигляд, фільтри й посилання

Як показувати результати

  • Вигляд вікна — вбудоване під рядком пошуку або повноекранне.
  • Вигляд списку — сітка чи список, із можливістю дати покупцеві перемикати.
  • Пагінація — класична, кнопка «Показати ще» або нескінченне прокручування.
  • Темна тема — завжди світла, завжди темна або за налаштуваннями пристрою.
  • Тексти — підказка в полі пошуку, текст у шапці й підвалі вікна, слова для імітації набору в рядку.

Фільтри

Вмикаються окремо: за ціною, за брендом, за наявністю, за атрибутами. Є перемикач «Застосовувати фільтри за кнопкою» — без нього результат перебудовується від кожної галочки.

Посилання й кнопки

Віджет живе на вашому сайті, тому має знати, куди вести покупця. Задаються шаблони посилань на товар, категорію, фото, сторінку пошуку, кошик, оформлення, порівняння, акції.

Кнопки дій — «Додати до кошика», «До списку бажань», «До порівняння», «Докладніше» — працюють через код JS вашого сайту: для кожної дії вказується функція, яку викликати. Без цього кнопки показуватимуться, але нічого не робитимуть.

Якщо товари приїхали із зовнішнього майданчика й посилання на них зберігається у зв'язках із зовнішніми джерелами, вкажіть код джерела та ID шаблону, а в шаблоні посилання використайте макрос {external_url}.

Аналітика пошуку

Окреме вікно, у якому видно не «скільки було пошуків», а що з ними сталося. Дані розбиті по вкладках:

ВкладкаВідповідає на питання
Оглядскільки пошуків, середній час відповіді, конверсія «пошук → клік», динаміка по днях
Аналіз запитівщо шукають найчастіше і — головне — за якими запитами нічого не знаходять
Конверсія й Сесії та вирваде саме губиться покупець між запитом і кошиком
Товари та категоріїщо відкривають із результатів
Підказкичи натискають підказки й на яких позиціях
Голос та зображеннячи користуються пошуком за фото й голосом
Фільтри та сортуванняякими фільтрами реально користуються
Мови, Пристрої та браузери, UX та поведінкахто й звідки шукає
Продуктивністьяк швидко відповідає пошук

Період задається датами, дані вивантажуються в CSV.

Найкорисніша вкладка — «Аналіз запитів», а в ній запити без результатів. Це готовий список того, що у вас питають і чого у вас немає: частину закривають синонімами, частину — новими товарами, а частину — виправленням назв у каталозі.

API пошуку

Якщо потрібен не готовий віджет, а власна сторінка пошуку чи мобільний застосунок, той самий сервіс має REST API. Адреса й ключ показані в картці віджета, у блоці API.

ПараметрЗначення
Базова адресаhttps://widget-ess.elbuz.com/api/v1
Автентифікаціязаголовок X-Api-Key зі значенням ключа вашого сайту (це UUID акаунта)
МетодGET для читання, POST для подій
Обмеження100 запитів на хвилину на ключ; залишок видно в заголовках X-RateLimit-Remaining і X-RateLimit-Reset
ФорматJSON: success, data, meta.execution_time_ms; помилка — success: false і код

Основні маршрути

МаршрутНавіщо
GET /products/searchпошук товарів: q, limit, page, sort, category_id, filters, lang
GET /suggestлегке автодоповнення для рядка пошуку
GET /products/{id}картка товару з відгуками
GET /products?ids=1,2,3кілька товарів за списком ідентифікаторів
GET /categories, /categories/{id}, /categories/{id}/filtersдерево категорій і доступні фільтри
GET /popular/queries, /popular/products, /popular/categoriesпопулярне за період
POST /eventsнадіслати подію в аналітику: клік, додавання в кошик, пошук за фото

Базовий шар і FACET

За замовчуванням пошук повертає тільки товари й категорії — це найшвидший варіант. Додаткові блоки підключаються параметром facets через кому:

  • brands — бренди з кількістю товарів;
  • stock — статуси наявності з кількістю;
  • attributes — фільтри за характеристиками;
  • price_range — мінімальна й максимальна ціна.

Кожен FACET додає час до відповіді, тому просять тільки те, що справді показують на сторінці.

curl -H "X-Api-Key: КЛЮЧ_ВАШОГО_САЙТУ" \
  "https://widget-ess.elbuz.com/api/v1/products/search?q=asus&limit=20&facets=brands,price_range&lang=uk"

У відповіді два різні числа: products_count — скільки товарів у цій відповіді (з урахуванням limit), total_found — скільки знайдено всього в базі. Для пагінації беруть друге, для перевірки «чи щось прийшло» — перше. Плутанина між ними — найчастіша помилка інтеграції.

Сортування задається двома способами: префіксом (price — за зростанням, -price — за спаданням) або суфіксом (price_asc, price_desc). Без параметра sort товари ранжуються за релевантністю з урахуванням наявності.

Чого розумний пошук не робить

  • Не шукає у вашій базі наживо — тільки у своєму індексі, тож нові товари з'являються в пошуку після оновлення індексу.
  • Не додає товар у кошик сам: кнопки викликають функції вашого сайту, які треба вказати.
  • Не замінює каталог — це вікно пошуку, а не сторінки категорій.
  • Не працює без коду в <head> — налаштований віджет без вставленого коду на сайті не з'явиться.

Розбір частих проблем

Що ви бачитеЧому такЩо зробити
Віджет не з'явився на сайтікод інтеграції не вставлений або вставлений не в <head>перевірити вставку в шаблоні сайту
Віджет є, але став не на місце поля пошукуу налаштуваннях неправильний CSS-селекторвказати селектор саме того елемента, який замінюємо
На телефоні пошук не відкриваєтьсяне заданий селектор кнопки пошуку мобільної версіїзаповнити окреме поле для мобільної версії
Пошук нічого не знаходитьіндекс не побудованийнатиснути «Створити пошуковий індекс»
Нових товарів немає в пошукуіндекс оновлюється не миттєвопереіндексувати після масових змін каталогу
Фільтри за характеристиками порожніпри побудові індексу не позначені атрибутипереіндексувати з галочкою «Атрибути»
Кнопка «До кошика» нічого не робитьне вказана функція JS вашого сайтузаповнити код функції для цієї дії
Покупець потрапляє не на ту сторінку товарунеправильний шаблон посиланняперевірити шаблони посилань на товар і категорію
Пошук знаходить відсутні товариувімкнено «Спочатку в наявності» замість «Тільки в наявності»вибрати потрібну стратегію
API відповідає 401немає заголовка X-Api-Key або ключ не тойузяти ключ із блоку API в картці віджета
API відповідає 429перевищено 100 запитів на хвилинудочекатися скидання вікна, дивитися X-RateLimit-Reset
У відповіді менше товарів, ніж total_foundтак і має бути: це загальна кількість збігів, а не розмір сторінкигортати сторінки параметром page

Часті питання

На якій CMS це працює?

На будь-якій. Віджет підключається одним скриптом у <head> і заміняє поле пошуку за CSS-селектором, тож від рушія сайту не залежить. Для типових платформ у картці є поля «CMS сайту» й «Дизайн тема», які підказують віджету особливості верстки.

Як часто переіндексувати каталог?

Повну перебудову роблять після серйозних змін: масового завантаження товарів, перебудови категорій, додавання мови. Для великого каталогу це десятки хвилин, тому щодня запускати її не треба.

Чому пошук нічого не знаходить?

Найчастіше індекс просто не побудований — сервіс шукає у власному індексі, а не у вашій базі наживо. Якщо індекс є, перевірте, чи не увімкнено «Тільки в наявності» й чи потрапили в індекс потрібні типи даних.

Навіщо синоніми, якщо є ШІ?

Синоніми — це ваш словник під конкретний магазин: місцевий сленг, помилкові назви, скорочення, які ШІ не зобов'язаний знати. Формат простий: слово1;слово2. Список поповнюють із вкладки аналітики «Аналіз запитів» — там видно, що питають і не знаходять.

Де взяти ключ для API?

У картці віджета, у блоці «API»: там показані адреса сервісу й ключ вашого сайту. Ключ передається заголовком X-Api-Key, обмеження — сто запитів на хвилину.

Чому пошук через API повертає товари без брендів і фільтрів?

Бо за замовчуванням віддається тільки базовий шар — товари й категорії. Бренди, наявність, фільтри за характеристиками й діапазон цін підключаються параметром facets; кожен із них додає час до відповіді.

Чому кнопки «До кошика» не працюють?

Віджет не знає, як влаштований ваш кошик: для кожної дії потрібно вказати функцію JS вашого сайту. Поки вона не задана, кнопка показується, але нічого не робить.

Суміжні теми

Чи була стаття корисною?