[mSearch2] Версия 1.1.0-rc с улучшенным поиском

Спешу представить вам новую версию моего самого популярного платного дополнения для поиска и фильтрации в MODX — mSearch2.

Изменений очень много, и они очень серьёзные, особенно у поиска. Поэтому при установке этой версии таблицы с индексом создаются заново. Вам нужно будет полностью проиндексировать сайт сразу после обновления.

Самое главное изменение — это новый формат таблицы индекса. Раньше туда сохранялись только id ресурса, слово и его вес, согласно настроек сайта на момент индексирования. Если слово встречалось несколько раз на странице, то в индекс оно попадало только один раз, в порядке, указанном в системной настройке mse2_index_fields. Если вы меняли эту настройку, вам нужно было заново индексировать весь сайт.

А сейчас сохраняется id ресурса, слово, поле ресурса и сколько раз слово встретилось в этом поле. Таким образом, теперь вы можете указать, по каким полям ресурса искать, прямо в вызове сниппета параметром &fields=``.
[[!mSearch2?
	&fields=`pagetitle:5,comment:2,introtext:3`
]]
Более того, каждому полю вы можете указать вес, через двоеточие. Если параметр не заполнен, или у полей не проставлен вес, то берутся данные из системной настройки индексирования.

Также заодно я добавил новый параметр &onlyIndex=`1`. При его активации поиск идёт только по базе слов, не добавляя бонус за точное совпадения, и не добавляя результатов, найденных по индексу документа при помощи LIKE.

Исправления


Дополнение теперь работает с AjaxManager. Можно добавлять слово msearch2 в системную настройку ajaxmanager.compatible_namespaces.

Исправлена загрузка Font Awesome, там вкралась опечатка.

[#29] Раскомментировал обратно кнопку очистки всех поисковых запросов в админке.

[#27] Добавлена возможность указывать пагинатору и сниппету фильтрации набор параметров прямо в имени:
[[!mFilter2?
	&paginator=`pdoPage@MyParams`
	&element=`pdoResources@MyAnotherParams`
	...
]]
Обратите внимание, что параметры элемента полюбому попадут в пагинатор, а параметры пагинатора — в элемент. Не знаю, есть ли какая-то практическая польза от этого нововведения, но раз просили — добавил.

[#25] Наконец-то добавлены всеми любимые select фильтры! Конечно, с ними пришлось повозиться, но теперь они работаю прямо из коробки.

Для них предусморено 2 специальных чанка, а фильтры, которые в них выводятся, желательно добавлять в &suggestionsRadio=``:
[[!mFilter2?
    &class=`msProduct`
    &element=`msProducts`
    &parents=`0`
    &filters=`
        resource|parent
    `
    &tplFilter.outer.resource|parent=`tpl.mFilter2.filter.select`
    &tplFilter.row.resource|parent=`tpl.mFilter2.filter.option`
    &suggestionsRadio=`resource|parent`
]]
Добавление в «Вы выбрали» и предсказания работают.

[#23] Если для фильтрации используется параметр &toSeparatePlaceholders=`mse2`, который может принимать и используемый сниппет (например, pdoResources), то он выставит свои данные в плейсхолдеры [[+mse2.0]], [[+mse2.1]] и т.д.

Так вот, теперь эти плейсхолдеры собираются и выставляются в одном общем — [[+mse2.results]], для вашего удобства.

Заключение


Вот такое вышло большое обновление mSearch2. Обновляем (или покупаем), тестируем и пишем отзывы.
Наше любимое сообщество я уже обновил, сейчас идёт индексация.

Ссылка на магазин.
Ссылка на документацию, я там всё уже обновил.
Василий Наумкин
13 августа 2014, 09:37
modx.pro
3
1 793
+7
Поблагодарить автора Отправить деньги

Комментарии: 1

Scorp Satex
13 августа 2014, 17:11
+4
Класс!

Наконец-то появились select фильтры из коробки! Спасибо большое! :)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1