Lightning-fast search
Search forgives typos and stays fast on catalogues with hundreds of thousands of items.
Screenshots are coming soon.
A shopper types «snekers» and leaves with an empty result page, even though you stock the item. This plugin connects your shop to a dedicated search service: it forgives typos, answers in milliseconds and does not slow down when the catalogue grows to hundreds of thousands of items.
What it does
- Forgives typos in the query: «snekers» finds sneakers, «headfones» finds headphones. Whether to forgive is your choice in the settings.
- Keeps its speed on a large catalogue: suggestions appear while the shopper is still typing.
- Searches products, sections and brands at once and counts how many matches sit in each section — the shopper sees those numbers in the suggestions.
- Requires every word of the query to match: «case for iphone» no longer returns your entire case catalogue.
- Picks up the synonyms from your «Search» section — no need to enter them twice.
- Loads the catalogue into the service in the background while the shop keeps working.
- If the service stops answering, the shop quietly searches the usual way with the built-in search: no empty results for the shopper.
What you need
- A server where an extra service can run (an ordinary VPS is enough, shared hosting is not). The «How to use» tab explains how to start it: one command.
- Pick this search method in «Settings» → «Search» and load the catalogue into it once.
- A working task schedule on the server — the background catalogue load runs through it.
Молниеносный поиск — как поднять поисковый сервис
Плагин подключает магазин к 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 между мажорными версиями достаточно пересобрать поиск заново.