Урок 10 - Поиск по сайту. Поиск по сайту modx revo


[MODx] Поиск на сайте с пакетом SimpleSearch

Не зря пакет называется "SimpleSearch". Установить и использовать этот поиск действительно просто.

Установка в формате минимум:

Но по сути сниппет SimpleSearchForm генерирует фот такую форму, которую можно как угодно править. Конечно, можно и через чанк, но...зачем?)

Либо любым другим способом передать в GET query string такого вида — ?search=Петр&id=123

Вывод в результатов поиска SimpleSearch товаров из minishop2

Или можно иначе сформулировать — Настройка вывода результатов поиска

Чанк элемента результата поиска находится тут — core/components/simplesearch/elements/chunks/searchresult.chunk.tpl

В сниппете SimpleSearch нет параметра where, поэтому придумываем костыли.

Наиболее простая в релизации конструкция — обернуть чанк вывода в условие [[+template:is=`5`:then=``]]

Как альтрнатива — как-то поиграть с параметрами ids и idType...

Настройки SimpleSearch

Настройка Значение по-умолчанию
searchIndexsearch
toPlaceholder0
noResultsTplSearchNoResults
tplSearchResultcore/components/simplesearch/elements/chunks/searchresult.chunk.tpl
containerTplSearchResultscore/components/simplesearch/elements/chunks/searchresults.chunk.tpl
showExtract1
extractSourcecontent
extractLength200
extractEllipsis...
highlightResults1
highlightClasssisea-highlight
highlightTagspan
perPage10
pagingSeparator | 
placeholderPrefixsisea.
includeTVs
processTVs
tvPrefix
offsetIndexsisea_offset
postHooks
facet'default'
facetLimit5
outputSeparator\n
addSearchToLink0
searchInLinkNamesearch

Способ поблагодарить автора сайта:

webstool.ru

поиск по сайту с учетом морфологии и релевантности / Готовые дополнения для MODX / MODX.im

Потестировал и решил перенести условия выборки прямо в DocLister (так быстрее, чем промежуточная выборка id). В общем результаты тестов примерно следующие (тестил сразу на огромном по меркам MODx сайте с настройками, когда в AliasListing заносятся только папки).

Итак исходные данные:

количество ресурсов — 329,974шт — 616.0 MiB ТВ — 659,886 шт — 336.1 MiB, в том числе anons (reachtext) — 329,931штук и почти весь объем, т.к. остальные строки или чекбоксы.

ыборка из категории 50 000 штук размером Постраничный вывод на 10 штук DocLister (без всяких условий) —

<!-- Mem : 6.25 mb, MySQL: 0.9688 s, 49 request(s), PHP: 0.1406 s, total: 1.1094 s, document from database. --> первая страница <!-- Mem : 6 mb, MySQL: 0.6719 s, 47 request(s), PHP: 0.1406 s, total: 0.8125 s, document from database. --> вторая страница <!-- Mem : 6 mb, MySQL: 0.9062 s, 20 request(s), PHP: 0.0781 s, total: 0.9844 s, document from database. --> последняя страница <!-- Mem : 2 mb, MySQL: 0.0156 s, 0 request(s), PHP: 0.0156 s, total: 0.0312 s, document from cache. --> первая страница

Проиндексировано 25,560 ресурсов вместе с ТВ анонс (есть у каждого ресурса) — медленное это дело, но это делается один раз, потом индексируется каждый документ отдельно при сохранении размер таблицы site_content практически не изменился, даже стал меньше (611.8 MiB, было 616.0 MiB) — хотя возможно это связано с однотипными записями

По запросу прямые накладные профили найдено всего 25560. Показано 10, c 1 по 10

<!-- Mem : 16 mb, MySQL: 1.8281 s, 35 request(s), PHP: 0.1562 s, total: 1.9844 s, document from database. -->

По запросу о компании найдено всего 1. Показано 1, c 1 по 1

<!-- Mem : 16 mb, MySQL: 1.2344 s, 26 request(s), PHP: 0.1250 s, total: 1.3594 s, document from database. -->

По запросу проект освещения найдено всего 8. Показано 8, c 1 по 8

<!-- Mem : 16 mb, MySQL: 1.2500 s, 30 request(s), PHP: 0.1094 s, total: 1.3594 s, document from database. -->

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

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

modx.im

MODx Revolution — поиск на сайте

MODx Revolution — поиск на сайте

MODx Revolution — поиск на сайте
MODx Revolution по шагам — шаг седьмой

Какой сайт без окошка поиска?Поговорим о расширении SimpleSearch и о том, где брать образцы шаблонов вывода.

 

Тестовый (учебный) сайт располжен по адресу: http://test.grandikos.com

В предыдущей статье  мы говорили о дополнительной навигации по сайту. Ещё одним важным сервисом для посетителей сайта является форма "Поиск на сайте". Окошко поиска на шаблоне-прототипе располагается в "шапке". Наша задача заставить это окно правильно функционировать, то есть, искать в документах сайта нужные слова. Для этих целей я буду использовать расширение MODx Revo — Simplesearch.

Короче, загружаем и устанавливаем это расширение...

Теперь, можно заняться им вплотную...

Пакет Simplesearch включает в себя три сниппета и плагин. Нас, прежде всего, интересуют — строки вызова определённого сниппета (плагин срабатывает сам) и шаблоны вывода как формы поиска, так и его результатов на страницы.

За окно поиска (то, которое мы будем "оживлять") отвечает сниппет SimpleSearchForm. За вывод результатов поиска — сниппет SimpleSearch. Вызываются эти сниппеты стандартными строками вызова с параметрами. Параметры  можно найти либо в руководстве, либо открыв сам сниппет (окно "параметры").

Что касается шаблонов вывода, то их можно написать отталкиваясь от кода шаблона-прототипа, вставив в нужные места управляющие тэги MODx Revolution, а также, шаблонов вывода по умолчанию, которые можно найти на вкладке "файлы" в админке. Смотри картинку ниже...

(Картинки являются иллюстрациями. Их можно увеличить шелчком мышки)

Файлы шаблонов вывода по умолчанию редактировать не рекомендуется — при обновлении пакета,  они, всё равно, перепишутся, так что будем использовать их только в качестве "референсов" при написании своих чанков.

Начнём с шаблона вывода окна поиска, взяв за основу, естественно, кусок кода шаблона-первоисточника, отвечающий за это самое окошко и вставив управляющие тэги MODx revo по аналогии с шаблонами вывода по умолчанию...

Теперь, создадим новый документ с названием "Результаты поиска" со стандартным вызовом и запомним  ID этого документа...

... чтобы в шаблоне "HEADER" заменить участок кода, отвечающий за отображение окошка поиска, следующим:

Запустим сайт и посмотрим, что получилось...

кэшировать — Викисловарь

1.3.1 Значение; 1.3.2 Синонимы; 1.3.3 Антонимы; 1.3.4 Гиперонимы; 1.3.5 Гипонимы. 1.4 Родственные слова; 1.5 Этимология; 1.6 Фразеологизмы и ...https://ru.wiktionary.org/wiki/%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C

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

Ну что же, поиск работает. Страница с результатами присутствует. Что касается стилей, то, посмотрев на значение параметра "searchindex" по умолчанию (это "search", он заменил "s" в коде первоисточника), я осуществлю в файле таблицы стилей следующие изменения:

Теперь, окно поиска должно стать таким, как в оригинале.

 Для того, чтобы "подсветить" найденное слово, воспользуемся классом Highlight таблицы стилей. Просто, вставим название класса как параметр строки вызова сниппета simpleSearch.

Вот, что получилось...

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

Cмотри также в разделе "MODx Revolution":

GrandikosЕсли Вам нравится сайт, а главное, статьи и обучающие материалы, на нём представленные... Вы можете стимулировать автора, бросив на его счёт любую "символическую" сумму, что, неизбежно, подвигнет его на дальнейшее проявление здорового альтруизма...Кстати, если Вы, к тому же, вместе с "пожертвованием" оставите и комментарий, содержащий ВАШИ пожелания на будущее, то автор непременно учтёт их при планировании своей работы...

Счет на "Яндекс деньги": 41001131476679

"Киви" кошелёк: 9050791354

Кошельки "WEB money":

Z148021440215 R515650544848

GRANDIKOS

xn----7sbbhnalk3aocq1b4e.xn--p1ai

MODx поиск по сайту

Поиск по сайту это очень важный инструмент, которым не стоит прибегать. Во-первых, данный инструмент очень удобен для пользователя (а значит, улучшает юзабилити сайта), если он корректно работает. Во-вторых, он по статистики 70% пользователей, которые попадают на сайт и пользуются поиском, уходят не получив в результатах ответ. Наконец, пользователи очень часто пользуются поиском для того, чтобы найти уже прочитанный материал. Таким образом, поиск по сайту является в некотором роде инструментом интернет-маркетинга.

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

MODx поиск по сайту

Для реализации поиска по сайту в MODx используется сниппет AjaxSearch.

В нашем шаблоне строка поиска по сайту располагается в шапке сайта, поэтому откроем чанк «HEADER» на редактирование и вместо куска HTML кода отвечающего за вывод поле для ввода поиска и кнопки поиск пропишем следующее:

[ !AjaxSearch? &showIntro=`0` &ajaxSearch=`0` &showResults=`0` &landingPage=`0`]]

Это не что иное, как вызов сниппета AjaxSearch с параметрами.

Теперь давайте создадим новый ресурс с шаблоном, предназначенным для вывода статей, я у себя его назвал Article. И заполним поля ресурса как указано на изображениях:

modx поиск по сайту

Обратите внимание на галочки «Показывать в меню» и «Использовать HTML-редактор», флаги сняты. Это сделано для того, чтобы ресурс не отображался в нашем меню, а также, чтобы для редактирования содержимого ресурса не использовался визуальный редактор.

Теперь введите в содержимое ресурса следующее:

[ !AjaxSearch? &ajaxSearch=`0` &pagingType=`0` &showInputForm=`0` &grabMax=`7`]]

Сохраните ресурс и обратите внимание на его идентификатор в скобках от названия. Отроем опять чанк HEADER и изменим значение параметра &landingPage на идентификатор ресурса. Сохраните чанк. Этот параметр задает ресурс, на котором будут выводиться результаты поиска.

Теперь введите в строку поиска информацию и нажмите кнопку «Поиск», если вы все сделали правильно вас должно перекинуть на страницу с результатами поиска.

На этом урок закончен, а в следующем уроке мы познакомимся с тем, как сделать на своем сайте ленту новостей.

Скачать файлы урока.

modx-evo.ru


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