# Быстрый поиск

Быстрый поиск

Заменяет существующий быстрый поиск вашего сайта. Устанавливается максимально быстро: просто добавьте CSS-класс к текстовому полю вашего поиска и все заработает автоматически:

<input type="text" autocomplete="off" class="rees46-instant-search" />

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

Сайдбар

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

  • Подсказки;
  • Категории;
  • Тематические коллекции;
  • Для книг:
    • Авторы;
    • Иллюстраторы;
    • Издательства;
  • Продвигаемый товар;
  • Другие секции, в зависимости от настроек.

Количество элементов в сайдбаре настраивается в разделе настроек. То есть можно выводить 5 категорий, а можно 50 (только не поместятся).

При нажатии на Enter или по ссылке «Показать все результаты» (справа-снизу в основной области) выполняется переход на полный поиск.

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

Глубина поиска

При инициации поиска можно задать дополнительный параметр search_scope.

Он определят глубину поиска по совпадениям во фразе.

По умолчанию активными считаются все поля, и поиск будет искать совпадающие слова во всех полях: названии, бренде, авторе, если речь идёт о книге. И так далее.

Задание параметра позволяет ограничивать глубину запроса.

Это будет полезно для фильтрации результатов, когда, например, слова из фразы запроса будут найдены в названии одной книги и фамилии автора другой, совершенно нерелевантной.

О работе с параметром можно узнать из нашей API-документации.

# Неправильная раскладка

Неправильная раскладка

Для того, чтобы исправление раскладки работало корректно, необходимо в настройках поиска указать основной язык интернет-магазина (по умолчанию установлен русский).

# Исправление опечаток

Поиск автоматически исправляет опечатки в словах на русском, английском (и еще 33 языках).

Исправление опечаток

Настройка поиска позволяет выбрать количество опечаток в слове:

Режим Описание
Авто Автоматически подбирает оптимальное число опечаток в зависимости от длины слова.
0 Не исправляет опечатки совсем. Это важно в случае, если поиск выполняется преимущественно по артикулам.
1 Оптимальное значение для исправления опечаток. Большинство проблем решается автоматически.
2 Возможно использовать, но не рекомендуется. При большом числе исправлений из одного слова вполне может получиться совсем другое: пума → пуля.

# Повторный поиск с удалением спецсимволов

Иногда пользователи вводят в поиск названия товаров со специальными символами — например, / или *. Такое бывает, если скопировать название с другого сайта или использовать сокращения.

Сначала поиск выполняется с заменой спецсимволов на пробелы. Если результатов нет, запрос повторяется — специальные символы удаляются.

# Пустой поиск

Еще до того, как посетитель начал что-то вводить в поле поиска, модуль выводит дропдаун с информацией, связанной с посетителем: его недавно просмотренные товары, недавние поисковые запросы.

Логика выдачи товаров в подсказке такая:

  1. Сначала выводятся недавно просмотренные товары.
  2. Если таких товаров нет или их недостаточно для заполнения подсказки, в последнюю подгружаются популярные товары.
  3. Если хоть какие-то просмотренные товары были, заполнение подсказки популярными товарами производится из тех же категорий, что и у просмотренных товаров.

За выдачу подсказок отвечают два алгоритма: "Популярные" и "Недавно просмотренные".

И тот и другой выбирают товары в базе данных. При выдаче подсказок, алгоритм "Недавно просмотренные" осуществляет выборку в базе данных по событию "просмотрено".

Сортировка происходит по дате события, а результат выводится в порядке убывания.

Период охвата выборки составляет две недели. Если за это время было просмотрено достаточное количество товаров, то они полностью заполняют выдачу подсказки.

Если же просмотренных за две недели товаров не достаточно, чтобы полностью заполнить выдачку подсказки, подключается алгоритм "Популряные".

На этом этапе возможны два сценария:

  • За две недели просмотров товаров не было
  • За две недели было просмотрено некоторое количество товаров, но их окзалось недостаточно, чтобы полностью заполнить выдачу подсказки.

В первом случае подсказка заполняется наиболее популярными товарами.

Во втором, сначала определяются категории уже просмотренных товаров.

После этого происходит выборка популярных товаров именно в этих категориях.

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

Пустой поиск

Если у пользователя нет недавно просмотренных товаров, то выводятся популярные товары.

# Поиск по артикулу

Поиск по артикулу

Если посетитель вводит артикул товара, автоматически появляется один товар с этим артикулом. Нажатие Enter приведет посетителя прямо в карточку этого товара. Вводить артикул нужно целиком, тогда система понимает, что это именно артикул, а не часть названия модели товара.

Для работы этой функции вам необходимо передавать поле barcode в товарном фиде.

Частичное совпадение

Elasticsearch поддерживает поиск по нескольким полям сразу. В данном случае в число таких полей входит и barcode. Поиск работает по принципу совпадения с начала значения.

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

# Поиск по цвету

Поиск автоматически находит товары нужного цвета.

Поиск по цвету

# Сопоставление числительных в поиске

Поиск по названию товара работает с числительными в базовой форме: мужской род, единственное число, именительный падеж. В основе механизма сопоставления - внутренний словарь, ограниченный числом 10000.

На практике это означает, что замена "1" на "один" приведёт к выдаче релевантных результатов. В то же время, замены "1" на "одна" не произойдёт.

Пример: книга "Три мушкетёра" будет найдена как при запросе "три мушкетёра", так и при запросе "3 мушкетёра"

Ограничения механизма сопоставления числительных в поиске

  1. Сопоставление чисел и числительных в поиске происходит только до числа 10000, далее механизм работать не будет. Например, для запроса "Вархаммер сорок тысяч" механизм сопоставления не сработает.
  2. Сопоставление производится только с числительными в базовой форме: мужской род, единственное число, именительный падеж.

# Особенности выдачи одинаковых товаров

При наличии нескольких одинаковых товаров с разными ID в результатах поиска может отображаться только один.

Причина — объединение товаров под одним group_id. Например, возможна ситуация, когда из трёх сумок одной модели, но разного цвета, в выдаче окажется только одна из них.

Если пользователь будет искать сумку определённого цвета, он автоматически получит нужный результат.