Skip to content
msCatalyst
msCatalyst
Фасетный фильтр, поиск и синхронизация каталога для miniShop2 и MiniShop3
  • MODX 2
  • MODX 3
  • miniShop2
  • miniShop3
  • PHP 7.2
  1. Компоненты
  2. msCatalyst
  3. Сниппеты
  4. msCatalystSearch

msCatalystSearch ​

Поле поиска для шапки сайта: выпадающие подсказки, переход на страницу результатов или оба режима сразу. Работает на том же индексе, что и фильтр.

modx
[[!msCatalystSearch?
  &searchMode=`live+page`
  &searchPage=`10`
  &parents=`5`
  &searchFields=`pagetitle^3, ms:article^5`
]]

Режимы ​

РежимЧто происходит
filterВвод сужает выдачу каталога. Режим по умолчанию для сниппета msCatalyst.
pageОтправка формы ведёт на страницу &searchPage.
liveПодсказки появляются под полем без перезагрузки страницы.
live+pageПодсказки и переход на страницу результатов по Enter. Режим по умолчанию для msCatalystSearch.

На странице результатов вызовите msCatalyst с теми же &parents: он прочитает запрос из адреса и покажет найденные товары вместе с фильтрами.

Параметры ​

ПараметрПо умолчаниюОписание
parentsID разделов каталога, по которым идёт поиск.
depth10Глубина поиска товаров внутри разделов.
searchModelive+pageРежим, см. выше.
searchPageID или адрес страницы результатов.
searchFieldspagetitle^3, longtitle, ms:article^5, introtext, description, contentПоля поиска с весами.
searchParamsearchПараметр адреса для запроса.
searchMin2Минимальная длина запроса.
suggestLimit8Число подсказок.
tplSuggestmsCatalyst.suggestЧанк одной подсказки.
toPlaceholderЗаписать вывод в плейсхолдер.

Как работает поиск ​

  • Словоформы: «кроссовки» находит «кроссовок» и «кроссовками». phpMorphy подключается, если стоит на сервере. Без него работает встроенный стеммер.
  • Транслит: krossovki находит кроссовки. Для брендов, которые пишут по-русски на слух, заведите синоним, например найк → nike.
  • Опечатки: кросовки адидас находит кроссовки Adidas. Слова с цифрами (артикулы, размеры) msCatalyst сравнивает точно или без пробелов.
  • Веса полей: совпадение в артикуле или названии поднимает товар выше совпадения в описании.

Синонимы ​

Синонимы ведутся на странице «Пакеты → msCatalyst», вкладка «Синонимы». Правило работает в одну сторону: найк → nike находит Nike по запросу найк, но не наоборот. Синонимы хранятся в системной настройке mscatalyst_search_synonyms в виде JSON:

json
{"шланг": "рукав, hose"}

Журнал запросов ​

Каждый поиск в каталоге записывается в таблицу mscatalyst_search_log: запрос, страница каталога, язык, число поисков, сколько товаров нашлось в последний раз и сколько раз не нашлось ничего. Запрос приводится к нижнему регистру, лишние пробелы убираются, поэтому «Кроссовки Nike» и «кроссовки nike» считаются одним запросом. Смотреть журнал удобно на вкладке «Запросы».

Что не попадает в журнал:

  • Подсказки живого поиска, пока покупатель набирает слово. Иначе журнал заполнится обрывками.
  • Вторая и следующие страницы выдачи и кнопка «Показать ещё».
  • Повтор того же запроса тем же посетителем в течение 30 минут, например когда он уточняет поиск фильтрами.
  • Поисковые роботы и запросы без заголовка User-Agent.

Запрос из шапки с &searchPage записывается на странице результатов, где стоит msCatalyst. Журнал выключается настройкой mscatalyst_search_log. Таблица создаётся при установке, а на сайте, обновлённом копированием файлов, при первом поиске.

Запросы, которые никто не повторял 365 дней, msCatalyst удаляет из журнала сам. Срок задаёт настройка mscatalyst_search_log_days, 0 хранит всё.