Поиск с русской морфологией в CMS Drupal

20.11.2007

Однажды я рассказывал про каптчу в Drupal. Сегодня покажу, как в этой CMS устроен поиск с учетом русской морфологии. Под «покажу» подразумевается «покажу картинки».

Модуль поиска включен в базовую поставку. Drupal работает на UTF-8, поэтому с кодировками у меня проблем не возникало на всех трех shared-хостингах, где пробовал.

Чтобы поиск работал, нужно построить поисковый индекс. Планировщик заданий (cron) будет это делать постепенно.

Настройки построения поискового индекса

Настройки поиска в Drupal

Если модуль учета морфологии не установлен, построенный индекс выглядит так:

Поисковый индекс Drupal

Для учета морфологии перед построением индекса нужно установить русский 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 работает.