Однажды я рассказывал про каптчу в Drupal. Сегодня покажу, как в этой CMS устроен поиск с учетом русской морфологии. Под «покажу» подразумевается «покажу картинки».
Модуль поиска включен в базовую поставку. Drupal работает на UTF-8, поэтому с кодировками у меня проблем не возникало на всех трех shared-хостингах, где пробовал.
Чтобы поиск работал, нужно построить поисковый индекс. Планировщик заданий (cron) будет это делать постепенно.
Настройки построения поискового индекса
Если модуль учета морфологии не установлен, построенный индекс выглядит так:
Для учета морфологии перед построением индекса нужно установить русский stemmer (штеммер?). В этом случае индекс выглядит так (обратите внимание на окончания слов):
Ранжирование в поисковой выдаче Drupal можно настраивать.
Есть простая и расширенная формы поиска. На доступ к ним можно выставлять права для различных групп пользователей. Думаю, можно сделать поиск по комментариям.
Для обычных сайтов такая реализация поиска — хороший вариант.
Комментарии
Алексей, 20.11.2007 18:06
Дмитрий, рецепт заинтересовал (спасибо за то, что с ним познакомили), но, увы, ссылка на модуль мертвая.
Дмитрий Сергеев, 20.11.2007 18:21
Хех. Это просто drupal.ru лежит. Он вообще слишком часто лежит, честно говоря :)
Вот, выложил модуль у себя (версия для Drupal 5).
Nikita, 21.11.2007 17:11
В итоге по запросу «море» я могу получить результаты со словом «морковь»?
Дмитрий Сергеев, 21.11.2007 17:18
Нет, поиск идет по полному соответствию штамму. Никаких LIKE %мор%.
А что, у Typo3 есть поиск с руской морфологией? ;)
Sergey, 08.12.2008 15:11
а для 6 друпала есть что-то подобное?
Дмитрий Сергеев, 11.12.2008 16:05
А что, не ставится на 6?
podarok, 31.12.2008 20:01
rustemmer - отличная фича, но в случае большого сайта - очень грузит базу данных. Но ничего не поделаешь.
Где-то встречал в ответах на проблемы модуля поиска - "не нравится этот модуль? Используйте Любую популярную доступную поисковую систему".
Кому надо для друпал6 - у меня на сайте лежит. Адаптировал когда-то для одного из проэктов. Он же и для 7 работает.