⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.
blog-post

Как на wine.co.za упростили поиск по архиву из примерно 145 тысяч записей с помощью Manticore Search

author image
View as markdown

На wine.co.za ищут не только вино.

В архиве сайта собрана самая разная информация о винодельческой отрасли ЮАР: сведения о винах и винодельнях, контакты, данные о зарубежных агентах, новости и объявления. Одни посетители ищут конкретного производителя или старую статью, другие — вино, которое могут описать, но не знают его названия.

Раньше поиск на wine.co.za выполнялся напрямую в MariaDB с помощью полнотекстовых индексов и запросов с подстановочными символами. Такой подход работал, но пользователям приходилось довольно точно формулировать запросы.

С Manticore Search поиск стал гибче, а подсказки при наборе запроса — полезнее. Кевин Кидсон , ИТ-директор WineNet, ценит и то, что поисковая система почти не требует внимания:

«Просто чертовски надёжно: настроил и забыл. Уже много лет работает как часы».

Архив винодельческой отрасли ЮАР

Manticore отвечает за поиск во всех разделах wine.co.za. В анкете Кевин привёл такие цифры:

КатегорияКоличество записей
Винодельни907
Вина45 833
Контакты4 644
Зарубежные агенты3 447
Новости41 602
Объявления48 482
Всего в перечисленных категориях144 915

Помимо перечисленного, в поиск включены ещё несколько небольших баз данных. По словам Кевина, wine.co.za — это архив винодельческой отрасли ЮАР, в котором важна каждая запись.

Цель была простой: упростить поиск по всем этим данным. Для этого требовалась система, которую легко настроить и использовать вместе с существующим приложением.

До Manticore: нужно было знать, что вводить в поиск

По словам Кевина, раньше для поиска использовались полнотекстовые индексы и запросы с подстановочными символами — по шаблонам вроде xx* и xx%.

«Пользователю нужно было знать, что он ищет, или хотя бы с каких букв начинается название».

Такой поиск был неудобен, если посетитель представлял, какое вино ему нужно, но не знал названия. Например, он мог бы ввести:

dry chenin stellenbosch

Эти три слова описывают стиль вина, сорт винограда и регион. По словам Кевина, возможность объединить их в одном запросе стала самым важным улучшением после перехода на Manticore.

«Теперь я могу объединять слова в запросе — например, искать сухой шенен из Стелленбоша. Раньше такой возможности у меня не было».

Теперь посетители могут описать, что им нужно, — начинать поиск с названия вина или винодельни больше не обязательно.

MariaDB остаётся основной базой данных

Всё устроено просто: wine.co.za по-прежнему хранит и обновляет данные в MariaDB. Раз в день данные для поиска копируются в Manticore, а сайт отправляет поисковые запросы через библиотеку для .NET.

MariaDB → ежедневная индексация → Manticore Search → приложение на .NET → поиск на wine.co.za

MariaDB отвечает за основные данные, а Manticore — за поиск. Системы работают вместе, а не заменяют друг друга.

Простота настройки была важна, потому что у Кевина было мало времени:

«Настройка оказалась очень простой и понятной».

Кевин вспоминает, что установка растянулась примерно на два дня, потому что он занимался ею параллельно с другими задачами. Суммарные затраты времени на установку и освоение Manticore он оценивает примерно в 24 часа.

Подсказки при вводе стали полезнее

Manticore также используется для подсказок в поисковой строке wine.co.za. Они помогают посетителям найти нужное ещё до того, как запрос введён целиком.

По словам Кевина, Manticore работает достаточно быстро, чтобы показывать подсказки прямо во время набора запроса. А поскольку поиск не так требователен к формулировке, реализовать такие подсказки проще. Слова можно вводить в разном порядке — например, dry chenin stellenbosch или stellenbosch chenin dry.

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

В анкете Кевин отметил оба улучшения:

«Поиск по всему сайту стал НАМНОГО лучше — и подсказки в выпадающих списках тоже стали НАМНОГО лучше».

Годы стабильной работы

Подробных замеров производительности wine.co.za не приводит. Как объясняет Кевин, компания небольшая и мало что измеряет, поэтому цифр для сравнения времени отклика или потребления ресурсов до и после перехода нет.

Для Кевина важнее другое: Manticore годами стабильно работает и почти не отнимает у него времени. Он хотел бы лучше изучить возможности системы, но уже сейчас доволен её работой.

Для небольшой команды это важно: время, которое иначе уходило бы на обслуживание поиска, можно потратить на другие задачи.

«Всё отлично работает, и мне не приходится об этом беспокоиться».

Удобный поиск без масштабной разработки

Пример wine.co.za показывает, как добавить в существующее приложение отдельную поисковую систему, не заменяя основную базу данных. Данные по-прежнему хранятся в MariaDB. Manticore получает их копию раз в день, а приложение на .NET обращается к нему с поисковыми запросами.

Разница видна на обычных запросах. Посетитель, который ищет сухой шенен из Стелленбоша, может объединить эти слова в запросе, поменять их порядок и получить подсказки по мере ввода. Заранее знать название конкретного вина не нужно.

Именно это сочетание Кевин и ценит: посетителям проще найти нужное, а ему не приходится ежедневно следить за работой поиска.

Установить Manticore Search

Установите Manticore Search одной командой в Linux или macOS:

curl https://manticoresearch.com | sh

Для расширенных вариантов установки см. полное руководство по установке и документацию .

Установить Manticore Search