Как известно поиск информации в Joomla реализуется посредством поисковых мамботов. Дистрибутив Joomla содержит мамботы, позволяющие осуществлять поиск по стандартным компонентам. Для поиска информации в сторонних компонентах (форумы, галереи, файловые архивы) необходимы соответствующие мамботы. Однако такие мамботы не всегда есть в наличии, а иногда их написание весьма проблематично.
Как быть в таком случае? Возможен ли универсальный механизм поиска? Весьма интересное решение этой задачи предложил недавно Роман Кулиш.
Для решения задачи поиска по сайту, без использования специализированных мамботов, были разработаны модуль и мамбот SearchAnywhere.
Описание принципов работы SearchAnywhere
При посещении пользователями страниц сайта, модуль SearchAnywhere индексирует вывод компонента и сохраняет его в свою базу. Модуль работает с буфером Joomla, поэтому ему безразлично индексирует ли он материалы, галереи, форум или что-нибудь еще. Так как модуль НЕ индексирует шаблон и остальные модули, то поиск по сайту будет более-менее чистым.
Мамбот SearchAnywhere используется для поиска по ключевым словам в базе индексированных страниц сайта и поддерживает параметр «Искать по словоформам», позволяющий искать по словоформам: пиво, пива, пивом. Поиск по словоформам пока работает только с русским и в кодировке Windows-1251.
Некоторые особенности использования
- модуль НЕЛЬЗЯ публиковать в разделе «Поиск» и в разделах сайта где используются формы, особенно для сбора конфиденциальной информации: Регистрация, Логин и т.д.
- если некая страница сайта не ищется мамботом, необходимо просто посетить ее
Установка и настройка
Для установки на сайт поисковой системы SearchAnywhere необходимо:
- Загрузить и установить модуль SearchAnywhere
- Задать значение параметра «Интервал очистки индекса (часов)», позволяющего установить время, в течении которого страница в базе индексов считается актуальной. По проишествии этого времени страница считается устаревшей и будет удалена из базы индексов поисковика.
- Исключить из страниц публикации модуля: поиск, регистрация, авторизация и т.д.
- Загрузить и установить мамбот SearchAnywhere
- При необходимости включить использование поиска по словоформам (параметр «Искать по словоформам») и опубликовать мамбот.
Заключение
Итак, Роман предложил весьма интересную идею, и сделал пробную реализацию. Нам очень интересно услышать мнение об этой идее в целом и ваши ответы на следующие вопросы:
- Что еще следует добавить в поисковой движок SearchAnywere?
- Есть ли идеи по поводу поддержки индексов в актуальном состоянии?
- Есть ли идеи по поиску по словоформам в UTF-8 и KOI-8?
Для обсуждения SearchAnywhere создана тема в форуме: http://joomlaforum.ru/index.php/topic,232.0.html
Загрузить модуль SearchAnywhere
Загрузить мамбот SearchAnywhere
Примечание: данная версия SearchAnywhere ЭКСПЕРИМЕНТАЛЬНАЯ и не рекомендуется к использованию на рабочих сайтах!