Возможности
← Ко всем возможностям
Служебные

Молниеносный поиск

Поиск прощает опечатки и остаётся быстрым на каталоге в сотни тысяч товаров.

Снимки экрана скоро появятся.

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

Что делает

  • Прощает опечатки в запросе: «кросовки» находят кроссовки, «наушнеки» — наушники. Прощать или нет — ваш выбор в настройках.
  • Держит скорость на большом каталоге: подсказка успевает появиться, пока покупатель печатает.
  • Ищет сразу по товарам, разделам и брендам и сам считает, сколько найденного лежит в каждом разделе — эти числа покупатель видит в подсказке.
  • Требует, чтобы совпали все слова запроса: по «чехол для айфона» не приезжает весь каталог чехлов.
  • Забирает ваши синонимы из раздела «Поиск» — задавать их второй раз не нужно.
  • Загружает каталог в службу фоном, магазин при этом продолжает работать.
  • Если служба не отвечает, магазин молча ищет как раньше, встроенным поиском: покупатель не увидит пустую выдачу.

Что нужно для работы

  • Сервер, где можно запустить дополнительную службу (обычный 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. Включите плагин в магазине

  1. «Настройки» → «Плагины» → «Молниеносный поиск»: впишите адрес (http://127.0.0.1:7700) и ключ доступа.
  2. «Настройки» → «Поиск» → способ поиска: выберите «Молниеносный поиск».
  3. Там же нажмите «Пересобрать» — каталог уедет в поисковую службу. На большом каталоге это несколько минут, магазин продолжает работать.

Дальше индекс поддерживается сам: сохранили товар — он обновился в поиске.

Если что-то пошло не так

  • Магазин ищет по-старому. Значит, служба не ответила. Магазин в такой ситуации молча возвращается на встроенный поиск, чтобы покупатель не увидел пустую выдачу. Проверьте curl … /health и запись в журнале магазина.
  • «Ничего не найдено» на весь каталог. Каталог ещё не загружен в службу: нажмите «Пересобрать» в разделе «Поиск».
  • Служба съедает много памяти. Это нормально при загрузке каталога; после неё расход падает. Если памяти мало, загружайте каталог ночью.

Обновление и резервные копии

Индекс полностью восстанавливается из базы магазина командой пересборки, поэтому отдельная резервная копия службы не нужна. При обновлении Meilisearch между мажорными версиями достаточно пересобрать поиск заново.

1.0.0 30.07.2026