Блискавичний пошук
Пошук пробачає помилки й лишається швидким на каталозі в сотні тисяч товарів.
Знімки екрана скоро з’являться.
Покупець пише «кросівкі» з помилкою — і йде з порожньої видачі, хоча товар у вас є. Плагін підключає магазин до окремої пошукової служби: вона пробачає помилки, відповідає за мілісекунди й не сповільнюється, коли каталог виростає до сотень тисяч позицій.
Що робить
- Пробачає помилки в запиті: «кросівкі» знаходять кросівки, «навушнеки» — навушники. Пробачати чи ні — ваш вибір у налаштуваннях.
- Тримає швидкість на великому каталозі: підказка встигає з'явитися, поки покупець друкує.
- Шукає одразу за товарами, розділами й брендами та сам рахує, скільки знайденого лежить у кожному розділі — ці числа покупець бачить у підказці.
- Вимагає, щоб збіглися всі слова запиту: за «чохол для айфона» не приїжджає весь каталог чохлів.
- Забирає ваші синоніми з розділу «Пошук» — задавати їх удруге не потрібно.
- Завантажує каталог у службу у фоні, магазин при цьому продовжує працювати.
- Якщо служба не відповідає, магазин мовчки шукає як раніше, вбудованим пошуком: покупець не побачить порожню видачу.
Що потрібно для роботи
- Сервер, де можна запустити додаткову службу (звичайний VPS підійде, шаред-хостинг — ні). Як її підняти, написано у вкладці «Як користуватися»: одна команда.
- Обрати цей спосіб пошуку в «Налаштування» → «Пошук» і один раз завантажити туди каталог.
- Робочий розклад завдань на сервері — ним іде фонове завантаження каталогу.
Молниеносный поиск — как поднять поисковый сервис
Плагин подключает магазин к Meilisearch — небольшой поисковой службе, которая живёт на вашем же сервере. Она занимает несколько сотен мегабайт памяти, запускается одной командой и не требует обслуживания.
Пока служба не настроена, магазин ищет как раньше — встроенным поиском. Ничего не сломается, если вы отложите настройку.
Что понадобится
- Сервер с root-доступом (обычный VPS — этого достаточно).
- 1 ГБ свободной памяти и место под индекс: примерно как треть от объёма каталога в базе.
- 10 минут.
Шаг 1. Придумайте ключ доступа
Служба отвечает только тому, кто знает ключ. Сгенерируйте длинную строку:
openssl rand -hex 32
Сохраните её — этот же ключ вы впишете в настройках плагина.
Шаг 2. Запустите службу
Вариант А. Docker (проще всего)
docker run -d --restart unless-stopped \
--name meilisearch \
-p 127.0.0.1:7700:7700 \
-e MEILI_MASTER_KEY='ВАШ_КЛЮЧ' \
-e MEILI_ENV=production \
-v /var/lib/meilisearch:/meili_data \
getmeili/meilisearch:v1.11
Вариант Б. Без Docker (systemd)
curl -L https://install.meilisearch.com | sh
sudo mv ./meilisearch /usr/local/bin/
sudo useradd -d /var/lib/meilisearch -s /bin/false -m meilisearch
sudo tee /etc/systemd/system/meilisearch.service >/dev/null <<'UNIT'
[Unit]
Description=Meilisearch
After=network.target
[Service]
User=meilisearch
Group=meilisearch
ExecStart=/usr/local/bin/meilisearch \
--db-path /var/lib/meilisearch/data \
--http-addr 127.0.0.1:7700 \
--env production \
--master-key ВАШ_КЛЮЧ
Restart=always
[Install]
WantedBy=multi-user.target
UNIT
sudo systemctl daemon-reload
sudo systemctl enable --now meilisearch
Важно: адрес 127.0.0.1 означает, что служба доступна только самому
серверу. Наружу её открывать не нужно — иначе ваш каталог сможет скачать кто
угодно.
Проверьте, что служба поднялась:
curl -H "Authorization: Bearer ВАШ_КЛЮЧ" http://127.0.0.1:7700/health
# {"status":"available"}
Шаг 3. Включите плагин в магазине
- «Настройки» → «Плагины» → «Молниеносный поиск»: впишите адрес
(
http://127.0.0.1:7700) и ключ доступа. - «Настройки» → «Поиск» → способ поиска: выберите «Молниеносный поиск».
- Там же нажмите «Пересобрать» — каталог уедет в поисковую службу. На большом каталоге это несколько минут, магазин продолжает работать.
Дальше индекс поддерживается сам: сохранили товар — он обновился в поиске.
Если что-то пошло не так
- Магазин ищет по-старому. Значит, служба не ответила. Магазин в такой
ситуации молча возвращается на встроенный поиск, чтобы покупатель не увидел
пустую выдачу. Проверьте
curl … /healthи запись в журнале магазина. - «Ничего не найдено» на весь каталог. Каталог ещё не загружен в службу: нажмите «Пересобрать» в разделе «Поиск».
- Служба съедает много памяти. Это нормально при загрузке каталога; после неё расход падает. Если памяти мало, загружайте каталог ночью.
Обновление и резервные копии
Индекс полностью восстанавливается из базы магазина командой пересборки, поэтому отдельная резервная копия службы не нужна. При обновлении Meilisearch между мажорными версиями достаточно пересобрать поиск заново.