Пользователь ищет товар или статью обычным языком. Если поиск не понимает формы слов, он возвращает пусто там, где результат на сайте есть.
Почему это важно
Поиск может использовать простой keyword analyzer, не иметь stemming, словарей, синонимов или правильной нормализации русского языка.
Что проверяю в первую очередь
- Какой analyzer используется в индексе.
- Есть ли stemming для русского языка.
- Как токенизируется запрос и документ.
- Нужны ли синонимы и опечатки.
- Переиндексированы ли данные после смены настроек.
Как исправляю
Я проверяю не только запрос, но и mapping индекса. Для морфологии важно, как текст был проиндексирован изначально.
- Анализирую текущие tokens через analyzer.
- Настраиваю русский analyzer/stemming.
- Добавляю синонимы при необходимости.
- Переиндексирую данные.
- Тестирую поисковые фразы из реальных запросов.
Что будет после исправления
- Поиск находит слова в разных формах.
- Пустых выдач становится меньше.
- Каталог или база знаний удобнее для пользователя.
- Поисковые настройки можно развивать дальше.
Что подготовить
- Примеры запросов без результата.
- Текущие настройки поиска.
- Доступ к индексу или backend.
- Список важных синонимов.
Вопросы и ответы
Можно ли решить точечно?
Да. Если поиск уже на Elasticsearch/OpenSearch, часто достаточно изменить analyzer и переиндексировать.
Почему не стоит откладывать?
Плохой поиск заставляет пользователя думать, что нужного товара или ответа нет, хотя он есть на сайте.
Нужна похожая задача?
Опишите проблему и пришлите ссылку, скрин или лог. Я разберу причину, предложу понятный план исправления и не буду обещать результат без первичного просмотра.