AjaxSearch. Поиск по сайту. Modx evo поиск по сайту


evoSearch - индексирование и поиск с учетом морфологии

712

evoSearch - индексирование и поиск с учетом морфологии

Содержит:

Установка:

Устанавливаем плагин и сниппет. Для плагина событие onDocFormSave, параметры - &offset=Первая строка переиндексации;text;0 &rowsperonce=Строк за сеанс индексировать;text;1 &reindex=Переиндексировать все;text;0 &excludeTmpls=Исключить шаблоны;text; &excludeIDs=Исключить ID ресурсов;text; &TvNames=Имена TV для поиска;text; &unpublished=Индексировать неопубликованные;text;0 &deleted=Индексировать удаленные;text;0 &dicts=Использовать словари;text;rus,eng

при первом запуске или необходимости переиндексации необходимо выставить параметр "Переиндексировать все" = 1, начальные строки и количество строк за сеанс устанавливаются в зависимости от возможностей вашего хостинга (например 0 и 10 000 соответственно - проиндексирует строки с 0 в количестве 10 000 штук в БД необходимо открыть и пересохранить любой документ для создания события onDocFormSave

для последующей работы установите "Переиндексировать все" = 0, "Строк за сеанс индексировать" = 1 при этом происходит переиндксация только того документа, который сохраняется

Пример вызова:

[!evoSearch? &tpl=`evoSearch`!]

Параметры:

&noResult

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

&addSearch

для опционального отключения дополнительного поиска при пустом fulltext-search

по умолчанию - 1

&extract

отключить экстректор - формирует нужную часть текста с подсветкой из результатов поиска (плейсхолдер [+extract+] в чанке вывода результатов DocLister)

по умолчанию 1 (извлекать)

&maxlength

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

по умолчанию - 350

&show_stat

отключаем показ статистики "найдено....показано...с...по...".

По умолчанию 1 - показ включен

&statTpl

шаблон показа статистики

По умолчанию:

По запросу [+stat_request+] найдено всего [+stat_total+]. Показано [+stat_display+], c [+stat_from+] по [+stat_to+]

где:

[+stat_request+] - запрос из строки $_GET['search'] [+stat_total+] - найдено всего [+stat_display+] - показано на текущей странице с [+stat_from+] по [+stat_to+]

&rel

релевантность поиска, по умолчанию 2, чем выше цифра - тем более релевантные результаты и тем их меньше

&addLikeSearch

добавляем функционал для поиска через like (на случай, если слов не было в словаре).

По умолчанию - 0

addLikeSearchType

тип поиска addLikeSearch (oneword- любое слово, allwords-все слова).

По умолчанию exact - фраза целиком

addLikeSearchLength

минимальная длина слова для поиска в addLikeSearch

По умолчанию - 3

Остальные параметры - дублируют параметры вызова DocLister

Обрабатывает $_GET['search'] в качестве входной строки для поиска

Подсветка найденных слов в pagetitle и extract в результатах поиска осуществляется тегом - т.е. возможна ее стилизация через css-файлы

modx-gu.ru

Поиск по сайту AjaxSearch -MODx

Как сделать поиск по сайту в MODx?

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

Для того, чтобы поиск начал работать, достаточно в нужное место вставить конструкцию такого вида:[!AjaxSearch!]

Всё, поиск работает, вот только криво работает, теперь самое интересное - настройка сниппета.

AjaxSearch может работать в двух режимах: в режиме Ajax, то есть без перезагрузки страницы и в обычном режиме, с выводом результата на определенной странице.

Каждый способ по своему хорош.

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

А поиск с выводом на странице удобен тем, что поле поиска можно поставить в любом месте сайта, как, например, на этом сайте.

Настройка сниппета AjaxSearch в обычном режиме

Итак, настройка заключается в следующем: например, чтобы убрать строку "Введите ваш запрос для поиска", нужно вставить такую конструкцию:[!AjaxSearch? &ajaxSearch=`0` &showIntro=`0`!]

Параметры настроек очень разнообразны, некоторые из них приведены в конце статьи.

Настройка сниппета в аякс режиме 

В этом режиме страница поиска не перезагружается, и результаты поиска выводятся на этой же странице.Пример использования:[!AjaxSearch? &pagingType=`1` &ajaxMax=`3` &moreResultsPage=`3`!]

Параметры в этом примере:&pagingType=`1` - Отключает/включает постраничное разбиение (0; 1; 2;).&ajaxMax=`3`- Количество результатов поиска.&moreResultsPage=`3`- Страница со всеми результатами поиска.

Сделаем поиск с выводом на отдельной странице сайта.

Первым делом создаем новую страницу и заполняем:

Вкладка: Настройка страницыПубликовать: ДАДоступен для поиска: НЕТКэшируемый: НЕТ

Вкладка: ОбщееЗаголовок: Результат поискаПоказывать в меню: НЕТСодержимое ресурса: [!AjaxSearch? &ajaxSearch=`0` &pagingType=`1` &showInputForm=`0` !]

Параметры:&ajaxSearch=`0`- использовать или нет аякс (1; 0;)&pagingType=`1`- Отключает/включает постраничное разбиение (1; 0;)&showInputForm=`0`- Показывать/не показывать форму поиска на странице результатов (1; 0;)

Страница с результатами готова.

В место, где нужна форма ввода запроса, вставляем следующую конструкцию:

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

Параметры:&ajaxSearch=`0`- использовать или нет аякс (1; 0;)&landingPage=`44`- страница вывода результата (id - страницы)&showResults=`0`- отображать или не отображать результаты поиска. (для поиска без технологии ajax) (1; 0;) &showIntro=`0` - отключает/включает вспомогательное поле под формой поиска "Введите ваш запрос для начала поиска" (1; 0;)

Со стилями можно поработать, добавив их в ваш файл стилей.

Стили:/* ------------------------------AjaxSearch------------------------*/

#ajaxSearch_form{ padding:0px; margin:0px;} /*Отступы в форме поиска*/#ajaxSearch_submit{background-color:#CCCCCC; color:#000000; font-weight:bold; padding:4px;}/*фон кнопки, стили  текста на кнопке*/#ajaxSearch_input{color:#ffffff; border:1px solid #666666; padding:4px;} /*Стиль для поля ввода.*/.ajaxSearch_result { border:1px dotted #eee; padding:5px 10px; margin-bottom:15px;}/*Стиль для вывода результата*/.ajaxSearch_highlight {background-color:#666666; color:#FFFFFF} /*Выделение искомого слова фоном*/.ajaxSearch_grpResultName{ font-weight:bold; }.ajaxSearch_resultLink{ font-size:1.1em; font-weight:bold; text-decoration:underline;} /*Стиль для ссылки с результатом*/.ajaxSearch_paging { display:block; padding:10px 0;}/*Стиль для блока с постраничной навигацией на странице с результатами*/.ajaxSearch_paging .ajaxSearch_currentPage{color:#fff; background-color:#B2C629; border:1px solid #6f7b1a; padding: 1px 3px; font-weight:bold; margin:2px;} /*Стиль для номера текущей страницы с результатами поиска*/#ajaxSearch_intro{} /*Стиль для строчки "Введите ваш запрос для начала поиска".*/

Параметры сниппета AjaxSearch

Параметр Описание Формат По умолчанию
AS_landing Страница результата поиска ID документа  

Идентификатор документа, который служит для отображения результатов поиска (для поиска без технологии ajax)

AS_showForm Показывать форму поиска 0 | 1 1

Определяет, нужно ли отображать форму поиска.

AS_showResults Выводить результат поиска 0 | 1  

Определяет, нужно ли отображать результаты поиска. (для поиска без технологии ajax)

addJscript Добавление JavaScript на страницу 0 | 1  

Если вы хотите, чтобы необходимые Java скрипты были подключены автоматически, укажите 1, иначе - 0.

ajaxMax Максимальное число результатов через Ajax число  

Максимальное количество результатов, которые вернет AjaxSearch.

ajaxSearch Использовать Ajax для поиска 0 | 1 1

Использовать технологию ajax.

ajaxSearchType Вариант поиска 0 | 1  

Определяет один из двух вариантов формы поиска:

  1. Кнопка формы отображается и поиск не начинается до тех пор, пока она не будет нажата пользователем
  2. Форма без кнопки. Поиск начинается автоматически при изменении выражения для поиска
extract Выделять найденные слова 0 | 1  

Выделять искомые слова в результатах.

grabMax Количество результатов на страницу число  

Количество результатов на странице для поиска без технологии ajax и для дополнительных страниц результатов.

moreResultsPage Страница для всех результатов ID документа  

ID страницы, на которой будут отображаться все результаты. Это страница, на которой есть другой вызов этого сниппета.

showMoreResults Показать ссылку на все результаты через Ajax 0 | 1 1

Показывать ли ссылку на все результаты (при поиске с ajax технологией).

landingPage ID страницы, на которой будет выведен результат поиска ID документа

ID страницы, на которой будут выводиться результаты поиска без технологии Ajax, то есть в вызове сниппета должен будет стоять параметр (&ajaxSearch=`0`)

showInputForm Отображать ли на странице вызова форму поиска  0 | 1 1

Форму поиска можно отключить на странице результатов

showResults Выводить или не выводить результаты поиска.   0 | 1 1

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

minChars Минимальное количество символов для поискового запроса  Цифра  3

Минимальное количество, которое может ввести человек при использовании формы поиска

maxWords Количество слов в запросе  Цифра  

Установка максимального количества слов в запросе через форму поиска (лучший вариант от 1 до 10 слов)

documents ID документов, в которых будет или не будет происходить поиск ID документа  

ID документов, в которых будет или не будет происходить поиск. Пример №1: &documents=`in:85,5` в этих документах будет происходить поиск. Пример №2 &documents=`not in:64,48` а в этих документах поиск производиться не будет

www.imho.74pro.ru

Создание поддержка продвижение сайта на Modx

Сниппет (англ. snippet — фрагмент, отрывок) — программный термин, обозначающий небольшой фрагмент исходного кода или текста, пригодного для повторного использования. То есть сниппет MODx — это часть кода отображающая гостевую книгу, форму обратной связи, поиск по сайту и т. д.

Стандартные сниппеты MODx

В CMS имеются предустановленные стандартные сниппеты  MODx такие как:

Посмотреть предустановленные сниппеты, Вашей CMS MODx или создать собственный можно в админ панели сайта: Элементы / Управление элементами / Сниппеты.

управление элементами modx

Для того чтобы вызвать сниппет на странице сайта, нужно вставить в код страницы сайта конструкцию следующего вида: [[SnippetName]], где вместо SnippetName, необходимо вставить имя созданного или используемого сниппета.

При этом конструкция [[SnippetName]] обозначает вызов кэшируемого сниппета, т.е. вызов динамической подпрограммы, результат выполнения, которой будет подсчитан и выполнен один раз, а впоследствии при загрузке страницы, где вызывается данный сниппет, результат будет неизменным, т.к. повторный вызов сниппета уже не происходит. Таким образом, мы экономим ресурсы своего веб-сервера, а это всегда имеет очень важное значение при высокой посещаемости ресурса. Однако существуют ситуации, когда необходимо все время выполнять код сниппета заново и кэшировать результаты нельзя. В таких случаях используется конструкция [!SnippetName]], которая всегда заставит сниппет выполняться без кэширования. По аналогии, данная конструкция называется вызовом некэшируемого сниппета.

Установка сниппетов MODx Evo.

Установка сниппетов на CMS MODx Evo достаточно проста. Распакуйте скачанный архив со сниппетом  и поместите содержимое в папку assets/snippets/новый сниппет. Создайте новый сниппет, если он еще не создан. Элементы—>управление элементами—>сниппеты—>новый сниппет. Как правило вместе со сниппетом поставляется файл с расширением txt поместите содержимое это файла в код сниппета (PHP). На этом установка сниппета будет завершена.

Лучшие сниппеты для MODX Evo.

На сегодняшний день лидерами по популярности среди сниппетов для CMS MODx Evo являются:

modx-profi.ru

FreelGraf | AjaxSearch. Поиск по сайту.

Параметр

Описание

По умолчанию

Пример

&addJscript

(Ajax параметр)

Добавить mootools библиотеку к заголовку веб-страницы

1

&addJscript=`0`

 

&advSearch

Установить дополнительные параметры поиска

- exactphrase: предоставляет документы, которые содержат точную фразу- allwords: предоставляет документы, которые содержат все слова- nowords: предоставляет документы, которые не содержат указанных слов- oneword: предоставляет документы, которые содержат хотя бы одно слово

oneword

&advSearch=`exactphrase`

 

&ajaxMax

(Ajax параметр)

Количество отображаемых результатов без перезагрузки

6

&ajaxMax=`10`

 

&ajaxSearch

Использовать Ajax в работе сниппета

1

&ajaxSearch=`0`

&asId

Уникальный идентификатор сниппета

нет

&asId=`abc123`

 

&asLog

Включить комментирование результатов поиска

level:0: запретить использование ajaxSearch журнала (по умолчанию)1: регистрировать неудавшиеся запросы поиска2: все ajaxSearch запросы заносятся в журналcomment:0: комментарии пользователей не допускаются (по умолчанию)1: комментарии пользователей разрешененыPurge: число регистраций, до автоматической очистки таблицы0: неограниченное число регистрацийпо умолчанию: 200&asLog = `x` эквивалентен &asLog = `x:0:200`&asLog = `x:y` эквивалентен &asLog = `x:y:200`&asLog = `1:1:500` означает, что возможно 500 неудачных запросов поиска, разрешены комментарии, неудавшиеся запросы храниться в таблице ajaxSearch_log

0:0:200

&asLog=`1:1:500`

 

&breadcrumbs

Показать пути к найденным документам

нет

&breadcrumbs=`Breadcrumbs, showHomeCrumb: 0, showCrumbsAtHome:1`

&category

Вывод результатов по категориям

нет

&category=`tv1`

 

&clearDefault

Очистка текста по умолчанию

0

&clearDefault=`1`

 

&config

Загрузить пользовательские настройки

default

&config=`example`

 

&debug

Включить/выключить режим отладки

0

&debug=`1`

 

&depth

Глубина поиска документов

10

&depth=`5`

 

&display

Смешивать или не смешивать вывод результатов поиска с категориями

unmixed

&display=`mixed`

 

&documents

ID документов в которых производить или не производить поиск

&documents = `in:28,29,30,31` поиск в документах 28,29,30,31&documents = `not in:28,29,30,31` поиск во всех документах кроме 28,29,30,31

По всем опубликованным документам

&documents=`in:28,29,30,31`

 

&extract

Количество выдержек из документа и какие поля будут использоваться

n: максимальное количество выдержек1:content,description,introtext,tv_value - одна выдержка

1:content, description, introtext, tv_content

&extract=`99:content`

 

&extractEllips

Начало и конец выдержки из документа

...

&extractEllips=`***`

&extractLength

Длина отдельного извлечения

200

&extractLength=`300`

 

&extractSeparator

&extractSeparator - html-тэг, разделяющий извлечения

<br />

&extractSeparator=` <hr />`

&filter

Исключить нежелательные документы

(Аналогично параметру filter для Ditto 2.1.)

нет

&filter=` pagetitle ,#,8`

 

&formatDate

Формат выводимых дат

'd/m/y : H:i:s' - результат: 21/01/08 : 23:09:22

&formatDate=` %d.%m.%Y`

 

&grabMax

Количество результатов на странице в режиме без Ajax (&ajaxSearch=`0`)

0

&grabMax=`20`

&hideLink

Включить поиск по документам с типом ресурса Веб-ссылка

1

&hideLink=`0`

 

&hideMenu

Поиск в документах, не показываемых в меню

0: поиск только в документах, видимых в меню1: поиск только в документах, не видимых в меню2: поиск в видимых и невидимых в меню документах

2

&hideMenu=`0`

 

&highlightResult

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

1

&highlightResult=`0`

 

&jsClearDefault

Местоположение js библиотеки clearDefault

js/ clearDefault/clearDefault.js

&jsClearDefault=``

 

&jscript

(Ajax параметр)

Выбор между Mootools или jQuery.

mootools2

&jscript=`@FILE:assets/snippets /ajaxSearch/js/mootools2/mootools-1.2.4.js`

 

&jsJquery

(Ajax параметр)

Расположение Jquery JavaScript библиотеки

js/jQuery/jquery.js

&jsJquery=``

 

&jsMooTools (Ajax параметр)

Расположение MooTools JavaScript библиотеки

manager/ media/script/ mootools/mootools.js

&jsMooTools=``

 

&jsMooTools2 (Ajax параметр)

Расположение MooTools2 JavaScript библиотеки

js/mootools2/ mootools1.2.js

&jsMooTools2=``

 

&landingPage

ID страницы, на которой будет реализован вывод результатов поиска в режиме без Ajax (&ajaxSearch=`0`)

нет

&landingPage=`12`

&language

Устанавливает языковой пакет для ajaxSearch

язык, установленный для MODx

&language=`english`

 

&liveSearch (Ajax параметр)

Включение автоматического поиска

0

&liveSearch=`1`

 

&maxWords

Максимальное количество слов для поиска

5

&maxWords=`7`

 

&mbstring

Расширение php_mbstring

1

&mbstring=`0`

 

&minChars

Минимальное количество символов для поиска

3

&minChars=`5`

 

&moreResultsPage  (Ajax параметр)

ID страницы на которой будет вывод всех результатов поиска в режиме с Ajax

0

&moreResultsPage=`12`

 

&opacity (Ajax параметр)

Прозрачность выводимого результата

1

&opacity=`0.9`

 

&order

Порядок сортировки документов

publishedon, pagetitle (сортировка по дате опубликования, затем по заголовоку документа)

&order=`pagetitle DESC, publishedon`

 

&output

Расположение формы поиска и результатов поиска

0

&output=`1`

 

&pageLinkSeparator

Разделитель между страницами

| (вертикальная черта)

&pageLinkSeparator=`-`

 

&pagingType

Выбор типа нумерации страниц

0: Без постраничного разбиения1: Previous - X-Y /Z - Next2: X-Y/Z - больше 10 результатов

1

&pagingType=`0`

 

&parents

ID папок через запятую, в дочерних ресурсах которых необходимо осуществлять поиск

&parents=`in:2,3` поиск только в дочерних ресурсах указанных папок. &parents=`not in:2,3` поиск по всем документам кроме дочерних ресурсов папок с идентификаторами 2 и 3. Глубина задается параметром &depth

по всем опубликованным документам

&parents=`in:2,3`

 

&rank

Ранжирование результатов поиска

pagetitle:100 ,extract

&rank=` pagetitle:100,alias:10, extract`

 

&showInputForm

Показать форму поиска с результатами

1

&showInputForm=`0`

 

&showIntro

Показать или скрыть сообщение под формой поиска

1

&showIntro=`0`

 

&showMoreResults

(Ajax параметр)

Показать ссылку на все результаты через Ajax

0

&showMoreResults=`1`

 

&showPagingAlways

Показывать номер страницы, даже если страница одна

0

&showPagingAlways=`1`

 

&showResults

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

1

&showResults=`0`

 

&stripInput

Преобразование на лету входных данных для поиска

defaultStripInput

&stripInput=``

 

&stripOutput

Преобразование на лету выходных данных для поиска

defaultStripOutput

&stripOutput=``

 

&timeLimit

Максимальное время выполнения AjaxSearch

60

&timeLimit=`30`

 

&tplAjaxGrpResult

Шаблон результатов поиска для групп, с Ajax

templates/ ajaxGrpResult.tpl.html

&tplAjaxGrpResult=`assets/ snippets/ajaxSearch/templates / myAjaxGrpResult.tpl.html`

 

&tplAjaxResult

Шаблон для каждого результата поиска, с Ajax

templates/ ajaxResult.tpl.html

&tplAjaxResult=`@FILE:assets/ snippets/ ajaxSearch/templates /myAjaxResult.tpl.html`

 

&tplAjaxResults

Шаблон результатов поиска, с Ajax

templates/ ajaxResults.tpl.html

&tplAjaxResults=`@FILE:assets/ snippets/ajaxSearch/ templates / myAjaxResults.tpl.html`

 

&tplComment

Шаблон формы комментариев

@FILE:assets/ snippets/ ajaxSearch/templates/ comment.tpl.html

&tplComment=``

 

&tplGrpResult

Шаблон результатов поиска для груп, без Ajax

@FILE:assets/ snippets/ajaxSearch/ templates/ grpResult.tpl.html

&tplGrpResult=``

 

&tplInput

Шаблон формы поиска

Примеры шаблонов находятся в папке: templates/inputTemplates/Input 1: простой поиск с простым вводомInput 2: расширенный поиск. Переключатели для выбора варианта поискаInput 3: поиск по параметрам из выпадающего списка (multi-select)Параметр расширенного поиска может быть смешан с шаблонами (2 & 3).При liveSearch кнопка поиска не отображается.

@FILE:assets /snippets/ajaxSearch/templates/ input.tpl.html

&tplInput=`@FILE:assets/ snippets/ajaxSearch/templates/ inputTemplates/input2.tpl.html`

 

&tplPaging0

Шаблон для pagingType=`0`

@FILE:assets/ snippets/ ajaxSearch/templates/ Paging0.tpl.html

&tplPaging0=``

 

&tplPaging1

Шаблон для pagingType=`1`

@FILE:assets/ snippets/ajaxSearch/ templates/ Paging1.tpl.html

&tplPaging1=``

 

&tplPaging2

Шаблон для pagingType=`2`

@FILE:assets snippets/ajaxSearch/ templates/ Paging2.tpl.html

&tplPaging2=``

 

&tplResult

Шаблон для каждого результата поиска, без Ajax

@FILE:assets/ snippets/ajaxSearch/ templates/ result.tpl.html

&tplResult=``

 

&tplResults

Шаблон результатов поиска, без Ajax

@FILE:assets/ snippets/ajaxSearch/ templates/ results.tpl.html

&tplResults=``

 

&tvPhx

Включить в поиск плэйсхолдеры

+: - использовать только эти параметры-: - исключить эти параметры из поиска&withTvs=`tv1,tv2,tv3` // поиск по указанным параметрам&tvPhx=`+:tv1,tv2,tv3` // поиск по указанным параметрам&tvPhx=`+` // поиск по всем параметрам&tvPhx=`-:tv1,tv2,tv3` // поиск по всем параметрам кроме этих

все параметры

&tvPhx=`tv1, tv2, tv3`

 

&whereSearch

Список таблиц и полей, по которым осуществляется поиск

Вы можете использовать ключевые слова:"content" для site_content, "tv" для site_tmplvar_contentvalues, "jot" для jot_content, "maxigallery" для maxigallery.

content|tv что означает: content:pagetitle,longtitle,description,alias,in trotext,menutitle,content | tv:tv_value

&whereSearch=`content:null| maxigallery`

 

&withTvs

Список TV-параметров, по которым необходимо произвести поиск

+: - использовать только эти TV-параметры-: - исключить эти TV-параметры из поиска&withTvs=`tv1,tv2,tv3` // поиск по указанным параметрам&withTvs=`+:tv1,tv2,tv3` // поиск по указанным параметрам&withTvs=`+` // поиск по всем параметрам&withTvs=`-:tv1,tv2,tv3` // поиск по всем параметрам кроме этих

все TV-параметры

&withTvs=`tv1, tv2,tv3`

 

freelgraf.in.ua


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