Поиск по сайту на MODX Revolution. mSearch. Поиск modx


Поиск на сайте. Компонент SimpleSearch

  По умолчанию Описание
tpl SearchResult Чанк который будет использоваться для отображения каждого результата.
containerTpl SearchResults Чанк который будет использоваться в качестве обертки результатов поиска, в нем можно указать расположение пагинации и дополнительных сообщений.
useAllWords 0 Если указано true, будут найдены только те результаты, которые полностью совпадают с указанными словами.
maxWords 7 Максимальное количество слов допустимое в поиске. Применяется, если значение useAllWords установлено в off.
minChars 3 Минимальное количество символов для поиска.
searchStyle partial Стиль поиска: partial — использует оператор LIKE;  match — основывается на релевантности.
andTerms 1 Добавлять или нет логическое AND между словами.
matchWildcard 1 Активирует подстановочный поиск. Надо установить false чтобы поиск выполнялся по точному совпадению.
docFields pagetitle, longtitle, alias, description, introtext, content Разделенный запятыми список полей ресурса участвующих в поиске. 
fieldPotency  

Оценка и сортировка результатов. Например: &fieldPotency=`pagetitle:10,content:1`

Допустим при запросе «сайт» вылезает 2 документа. У первого слово встречается 1 раз в заголовке и 1 раз в тексте, у второго 10 раз в тексте. Соответственно второй документ будет предпочтительнее. Это свойство позволяет задавать приоритет для полей

(На момент написания статьи есть баг, свойство правильно обрабатывает только то количество страниц, которое указано в perPage)

perPage 10 Количество результатов поиска выводящихся на странице.
showExtract 1 Выводить или нет анонс контента для каждого результата.
extractSource content Позволяет пользователю определить, откуда извлекается результат. Если значение этого параметра — поле ресурса (включая TV, если includeTVs установлено), тогда это поле ресурса используется для выделения. В противном случае, параметр берется из имени запущенного сниппета. Сниппет передает ресурсу массив как параметры.  Если сниппет с данным именем не найден, тогда параметр выделения остается пустым.
extractLength 200 Количество символов, для отображения каждого результата поиска.
extractEllipsis ... Строка, использующаяся для сокращения результата поиска.
includeTVs 0 Надо проставить 1, если необходимо подключить дополнительные поля(TV), для доступа в результатах поиска. Включение этой опции может сильно замедлить время отображения результатов.
includeTVList   Необязательный, разделенный запятыми список имен дополнительных полей, которые должны включаться при обработкее поиска, если includeTVs установлен 1. 
process TVs 0 Указывается если значения дополнительных полей (TV) должны быть отображены так же как они отображались бы на странице ресурса. Некоторые особенности:  Дополнительные поля могут быть доступны по их именам . По умолчанию SimpleSearch не использует префиксы, например не будет отображен.  Дополнительные поля начинают индексироваться в процессе Solr поиска, поэтому здесь нет необходимости их индексации.
highlightResults 1 Выделять или нет найденный термин в результатах поиска.
highlightClass sisea-highlight Имя CSS класса, которое добавляется к тегу оборачивающему найденный термин в результате поиска.
highlightTag span Html тег, оборачивающий найденный термин в результате поиска.
pageTpl PageLink Чанк для ссылки пагинации. 
currentPageTpl CurrentPageLink Чанк использующийся для текущей страницы пагинации. 
pagingSeparator | Разделитель использующийся между ссылками пагинации.
ids   Разделенный запятыми список ID для ограничения поиска.
idType parents Ограничение типа для параметра ID. Если parents, в поиск будут добавляться все дочерние ресурсы с ID включенными в ids параметрами. Если documents, будут использоваться только указанные ID. 
exclude   Разделенный запятыми список ID ресурсов исключенных из поиска.
depth 10 Если в idType установлено parents, устанавливает глубину поиска вниз по дереву ресурсов.
hideMenu 2 Надо ли отображать ресурсы у которых проставлен параметр скрывать из меню (hidemenu): 0 — показывать только видимые ресурсы; 1 — показывать только скрытые; 2 — показывать все.
contexts текущий контекст Контекст поиска. 
searchIndex search Имя REQUEST параметра которое будет использовать поиск.
offsetIndex sisea_offset Имя REQUEST параметра который используется для изменения страницы пагинации.
placeholderPrefix sisea. Префикс для плейсхолдера, устанавливаемого этим сниппетом (полезно если на сайте несколько поисков).  
toPlaceholder   Если установлено значение, все результаты будут записываться в плейсхолдер с указанным именем.
urlScheme   URL схема которую надо использовать: http, https, full, abs, relative, etc. Больше подробностей в документации MODX $modx->makeUrl(). Используется при генерации ссылок пагинации.
customPackages   Устанавливается для кастомизации поиска путем загрузки их пакетов. 
postHooks   Разделенный запятыми список постХуков, которые должны запуститься, для того чтобы добавить фасетный поиск к результатам.
activeFacet
default
Текущий активный фасет. Оставьте поле пустым, если хотите показывать результат в не стандартном фасете, полученном через postHook. 
facetLimit 5 Число не активных фасетов результатов, отображаемых на основной странице результатов. 
sortBy   Разделенный запятыми список полей ресурсов для сортировки результатов. Оставьте пустым для сортировки по релевантности.
sortDir DESC Разделенный запятыми список направлений сортировки результатов. Должно соответствовать количеству элементов в параметре sortBy.
noResultsTpl   Чанк использующийся когда поиск не дал никаких результатов.

www.riwkus.pro

Modx поиск по сайту с помощью SimpleSearch

07 окт. 2017

Всем добрый день.

Сегодня хочу вам рассказать о том, как я организовал поиск на своем сайте.

Сделал я это, с помощью плагина SimpleSearch. Так что сразу заходим в установщик приложений, ищем этот плагин и устанавливаем.

SimpleSearch Modx Revo

Необходимо создать новую страницу для вывода результатов поиска. Я назвал ее "Результаты поиска", убрал галочку "Доступен для поиска" и поставил галку "Не показывать в меню". В содержимое страницы вставил следующее:

[[!SimpleSearch]]

Дальше необходимо определиться где будет располагаться наша форма для ввода поискового запроса. В моем случае я регил сделать ее в правом сайдбаре. Для того чтобы вывести ее открываем чанк(или шаблон) отвечающий за эту часть шаблона и в нужном месте вставляем следующее:

 [[!SimpleSearchForm? &landing=`146` &tpl=`search`]]

Разберем данную запись:

Далее открываем чанк search и вставляем в него следующий код:

<form action="[[~[[+landing]]]]" method="[[+method]]"> <fieldset>       <input type="text" name="[[+searchIndex]]" value="[[+searchValue]]" placeholder="Введите Ваш запрос"/>   <input type="hidden" name="id" value="[[+landing]]" />    <input type="submit" value="[[%sisea.search? &namespace=`sisea` &topic=`default`]]" /> </fieldset></form>

Основные параметры и чанки SimpleSearch

Чанки:

Параметры:

На этом все.

Вот так вот просто организовать поиск по сайту на этой замечательной CMS.

Удачи всем. Подписывайтесь на обновления блога в форме ниже!)

Если статья понравилась, то поделитесь ей в социальных сетях:

foxtan.ru

Создаём поиск по сайту на MODX Revo при помощи компонента mSearch

03 июл 2014 г. в 14:15

Почти любой сайт должен иметь такой функционал как поиск. Во всех CMS есть для этого дополнения или компоненты, не стал исключением и MODX Revo. Самым популярным пакетом в MODX для этих целей является «SimpleSearch». Несмотря на это мы воспользуеся другим компонентом — «mSearch». Его преимущество заключается в учитывании при поиске морфологии русского языка, а так же в повышенной скорости работы.

К сожалению, у этого пакета есть и недостатки:

Создание страницы для вывода результатов поиска в MODX

Устанавливаем дополнения «mSearch» и «pdoTools». Второе дополнение есть в официальном репозитории MODX. Из него нам потребуется сниппет «pdoResources», хотя вполне можно вместо него использовать и «getResources». Это на ваше усмотрение.

Затем создадим страницу (ресурс), которая будет отвечать за вывод результатов поиска. Шаблон для этого ресурса в большинстве случаев подходит стандартный, требование одно — основное место в нём должно выделяться под содержимое ресурса. В содержимом страницы вызываем сниппет «pdoResources», в параметре к которому передаём id найденных ресурсов сниппетом «mSearch»:

Результаты поиска по запросу: [[+mse.query]] ([[+total]]) [[!pdoResources? &parents=`0` &resources=`[[!mSearch? &templates=`4` &returnIds=`1`]]` &limit=`15` &includeTVs=`img-news,tags,HitsPage` &tpl=`articleTpl` ]] [[+mse.error]]

В этом примере мы немного извратились. По идее, сам сниппет поиска может выводить результаты, но на деле он некорректно отображает связанные с ресурсом TV параметры. Точнее он их отображает только для первого найденного ресурса. Чтобы обойти это мы настроили «mSearch» так, чтобы он выдал только id найденных ресурсов, а их вывод и оформление мы осуществляем через «pdoResources».

Используемые плейсхолдеры и параметры:

<div > <img src="[[+tv.img-news]]" alt="[[+tv.tags]]"> <a href="[[++site_url]][[~[[+id]]]]">[[+pagetitle]]</a> <p>[[+description]] ...</p> </div>

Создание формы поиска

Осталось передать созданной странице параметр, через который сниппет «mSearch» узнает, что именно надо искать. Для этого в любом месте сайта располагаем следующий код:

<form action="[[++site_url]][[~20]]" method="GET"> <input type="text" name="query" maxlength="40" value="" placeholder="Найти" /> <input type="submit" value="Найти" /> </form>

Как вы наверно догадались, [[~20]] это id страницы, которую мы создали на предыдущем шаге. Вся задача этой формы — отправить ей методом «GET» или «POST» параметр «query». Можно приступать к тестированию, так как основная часть поиска на MODX закончена.

Вывод результатов с постраничной пагинацией

Если в выдаче очень много ресурсов, то целесообразно использовать постраничный вывод. Для этого можно использовать сниппет «getPage» или «pdoPage». Последний входит в состав дополнения «pdoTools», поэтому пример именно с ним:

[[!pdoPage? &elementClass=`modSnippet` &element=`pdoResources` &parents=`0` &resources=`[[!mSearch? &templates=`4` &returnIds=`1`]]` &limit=`5` &includeTVs=`img-news,tags,HitsPage` &tpl=`articleTpl` ]] <div> [[!+page.nav]] </div>

Форма поиска должна обязательно передавать параметр «query» методом «GET».

realadmin.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта