29 мар. 2016 г., 19:37
modSearch-1.0.0 + modxSite-1.7.0. Морфологический поиск на сайте.
Вообще про modxSite будет еще отдельный топик завтра, так как в прошлых релизах были не раскрытые важные фишки, но текущего релиза наверняка многие долго ждали — это морфологический поиск по сайту (в том числе и по каталогу, если мы говорим об интернет-магазинах). Для этого был собран и опубликован новый компонент — modSearch. Собственно, он-то и индексирует содержимое сайта, используя библиотеку phpMorphy, но в modxSite в getdata-процессор был добавлен входной параметр search, по которому и происходит поиск документов. Конечно это далеко еще не исчерпывающее решение, так как с поиском очень много тонкостей, но это уже гораздо больше, чем ничего. К примеру и здесь на сайте Клуба поиск реализован с использованием этого компонента, и позволяет искать топики сразу по нескольким словам с учетом склонений. В процессе алгоритмы будем допиливать (включая возможность индексации не только полей самого документа, но и связанных с ним объектов и TV-полей).
Немного тонкостей.
В состав компонента modSearch входит одноименный плагин, который срабатывает на сохранение документа и индексирует его содержимое по указанным в настройках полям (по умолчанию это content, pagetitle и longtitle, но можно туда же добавить description, introtext и т.п.). Для того, чтобы полностью пересоздать индексы для документов (особенно это требуется, если пакет устанавливается на уже готовый сайт), в состав пакета входит готовый Console-скрипт. Он просто прогоняет все документы на обновление, а там уже вызывается плагин и создает индексы. Там же имеется и второй скрипт с примером поиска документов с помощью getdata-процессора.
Офигеть... 3 года назад компонент писал. Вот понадобился на сайте клиента. Установил и поиск заработал...