# Поиск
# Быстрый поиск
Быстрый поиск представляет собой выпадающее окно, которое изменяется по мере ввода текста в поле поиска.

Подключение выполняется простым добавлением CSS класса rees46-instant-search к вашему существующему полю поиска:
<input class="rees46-instant-search" type="text">
Если на вашем поле поиска уже есть CSS-классы, просто добавьте новый к ним. Например, так:
<input class="my-class1 my-class2 rees46-instant-search" type="text">
Не забудьте отключить функциональность вашего старого поиска.
# Полный поиск

Подключение выполняется простым добавлением элемента на вашей странице:
<div class="rees46-full-search-results" data-search-query="%QUERY%"></div>
Где %QUERY% - поисковый запрос.
Также можно подключить предустановленный блок фильтров результата поиска. Простой пример:
<div style="display: flex">
<div class="rees46-filters"></div>
<div class="rees46-full-search-results" data-search-filters-block=".rees46-filters" data-search-query="%QUERY%"></div>
</div>
В этом примере наглядно показано использование data-атрибутов.
Первый, data-search-filters-block, указывает на то, что фильтры должны быть отображены именно в этом блоке.
Атрибут data-search-query содержит запрос с которым будет работать поиск.
Запрос пользователя также может содержаться в data-input-query.
Чтобы указать блок сортировки, нужно использовать data-search-sort-block.
Обратите внимание
Атрибут data-search-sort-block должен находиться внутри блока фильтров: <div class="rees46-filters">.
Пример реализации блока сортировки:
<div class="rees46-filters">
<div class="rees46-sort">Сортировать по:
<select>
<option value="popular" selected>популярности</option>
<option value="price_desc">убыванию цены</option>
<option value="price_asc">возрастанию цены</option>
<option value="discount_desc">убыванию скидки</option>
<option value="discount_asc">возрастанию скидки</option>
</select>
</div>
</div>
<div class='rees46-full-search-results' data-search-query="jacket" data-search-filters-block=".rees46-filters" data-search-sort-block=".rees46-sort select"></div>
Для отображения общего числа найденных товаров, следует использовать data-search-total-block.
Атрибут data-search-callback - это колбек с резульатами поиска, который может быть обработан кастомной функцией пользователя.
В значение атрибута нужно передать имя глобальной функции, которая будет вызвана после рендеринга результатов поиска.
Аналогично data-search-error - позволяет обработать ошибки.
Атрибуты, модифицирующие запрос к базе данных
Следующие атрибуты это фильтры, которые применяются путём модификации запроса к базе данных.
Соответственно, они должны использоваться в одном блоке с самим запросом в атрибуте: data-search-query.
data-search-limit- ограничивает количество возвращаемых результатовdata-search-page- страница выдачи, по умолчанию1data-search-offset- смещение выдачи на другую страницу. Если указано, тоdata-search-pageигнорируетсяdata-search-available- фильтрация товаров в наличии, по умолчаниюtrue. По умолчанию поиск будет возвращать только товары в наличии. Доступные значения:true, falsedata-search-sort-by- сортировка результатов, по умолчаниюpopular. Доступные значения:popular, price, sales_rate, date, discount, ratingdata-search-order- порядок сортировки, по умолчаниюdesc. Доступные значения:asc, desc. С помощью этого атрибута задаётся порядок сортировки по умолчаниюdata-search-price-min- фильтрация по нижней границе цен. Товары с ценами ниже заданного значения не попадут в результаты поискаdata-search-price-max- фильтрация по верхней границе цен. Товары с ценами выше заданного значения не попадут в результаты поискаdata-search-categories- нужно задать список категорий через запятую. Поиск в базе данных будет ограничен укзанными категориямиdata-search-brands- нужно задать список брендов через запятую. Поиск в базе данных будет ограничен укзанными брендамиdata-search-locations- фильтр по географическому расположениюdata-search-merchants- фильтр по продавцам. Товары продавцов, не переданных в атрибуте, не попадут в выдачуdata-search-brand-limit- ограничивает количество брендов в выдаче. По умолчанию возвращаются всеdata-search-category-limit- ограничивает количество категорий в выдаче. По умолчанию возвращаются все
<div style="display: flex">
<div class="rees46-filters"></div>
<div class="rees46-full-search-results" data-search-filters-block=".rees46-filters" data-search-categories="Smartphones" data-search-brands="Apple" data-search-limit="10" data-search-query="%QUERY%"></div>
</div>
Доступные аттирибуты для элемента с блоком фильтров rees46-filters:
data-categories-title- заголовок для блока фильтров категорийdata-brands-title- заголовок для блока фильтров брендовdata-filters-title- заголовок для блока фильтров по параметрам
Для SPA сайтов
Каждый раз при переходе по страницам вашего сайта необходимо вызывать методы:
- для полного поиска
r46('full_search_init') - для быстрого поиска
r46('search_init')
# Ограничения
По умолчанию лимит на поисковый запрос - 80 символов. Для кейсов, когда копируется название товара, поддерживается лимит - 200 символов. В этом случае поиск работает только в режиме точного совпадения наименования товара, поиск по части запроса отключается.
# Решение проблем
В случае некорректного отображения результатов поиска, воспользуйтесь этим документом для поиска проблем.