Модуль морфологического поиска (stemming) для русского языка

Аватар пользователя Algenon Algenon 21 сентября 2006 в 20:21

Модуль rustemmer добавляет возможность морфологического поиска (stemming) в Drupal при использовании стандартного модуля search. Морфологический поиск позволяет искать информацию на сайте не только по строго заданному слову, но и по всем его морфологическим формам.

Для установки модуля скачать прилагающийся файл и следуйте инструкциям из файла install.txt.

Алгоритм вычленения основы (stem) слова предоставлен доктором Мартином Портером (snowball.tartarus.org):
ссылка.

Реализация алгоритма на PHP предоставлена Дмитрием Котеровым (dklab.ru):
ссылка.

Адаптация реализации для работы с Drupal - Algenon (4algenon at gmail.com).

UPD - Version 0.02
Исправлен баг с некорректной индексацией.

UPD - Version 0.03
В сочетании с измененным модулем search.module (для drupal 4.7.3) выделяет жирным измененные формы слова в результатах поиска.
Для работы:
1. установите модуль rustemmer из архива rustemmer_003.zip
2. замените существующий search.module на соответствующий файл из архива search.zip (если у вас drupal 4.7.3). Если у вас другая версия drupal, изменения в модуль search необходимо внести самостоятельно.

ВложениеРазмер
Иконка пакета rustemmer_002.zip9.79 КБ
Иконка пакета rustemmer_003.zip9.83 КБ
Иконка пакета search.zip14.77 КБ
0 Thanks

Комментарии

Аватар пользователя B.X B.X 21 сентября 2006 в 20:52

почему никто не открывает проекты на drupal.org? Интересно... можно было бы сюда тоже модуль project тогда поставить...

Аватар пользователя romantaran romantaran 22 сентября 2006 в 11:05

> А вы не забыли переиндексировать содержимое сайта?

По крайней мере, я жал кнопку "Переиндексировать" и сейчас Друпал показывает, что сайт проиндексирован на 100%.

Тем не менее, если я ввожу, напр., слово композиция, то композициям находится, а композиции — нет, хотя такая форма слова точно имеется.

Аватар пользователя Algenon Algenon 22 сентября 2006 в 15:29

Проверил - действительно, у меня поиск тоже не всегда работает корректно.

Как можно проверить: посмотрите содержимое таблицы search_index. Если встречаются кракозябры, значит индексация прошла некорректно.
Как исправить: установить новую версию модуля.
Чем вызван баг: ошибка была вызвана strtr($words, 'ё','е'), т.е. заменой всех 'ё' на 'е'. По непонятным причинам при выполнении такой замены происходит "коверканье" слов.

Аватар пользователя Algenon Algenon 23 сентября 2006 в 17:42

За форматирование результатов поиска (втч и выделение жирным) отвечает функция search_excerpt, входящая в состав модуля search. Я не вижу способа перегрузить ее, так что, похоже, единственный способ - вносить изменения непосредственно в модуль search.
Если хотите, можете загрузить исправленный модуль search, на свой страх и риск Smile у меня работает Smile

Аватар пользователя Shelendor Shelendor 5 февраля 2007 в 16:32

А можно как-то этот модуль использовать в 5 версии? А то проблема морфологического поиска ведь никуда не делась...

Аватар пользователя ProMax ProMax 27 мая 2008 в 4:23

а у меня вообще поиск не работает не знаю в чем дело , вернее догадываюсь , нажимаю проиндексировать сайт , а он почему то не индексирует , после индексации выдает что проидексировано 0% в чем дело кто подскажет ?

Аватар пользователя podarok podarok (не проверено) 4 июня 2008 в 11:30
ProMax wrote:

а у меня вообще поиск не работает не знаю в чем дело , вернее догадываюсь , нажимаю проиндексировать сайт , а он почему то не индексирует , после индексации выдает что проидексировано 0% в чем дело кто подскажет ?

запусти крон

Аватар пользователя saken saken 5 июня 2008 в 22:33

>2. замените существующий search.module на соответствующий файл из архива search.zip (если у вас drupal 4.7.3). Если у вас другая версия drupal, изменения в модуль search необходимо внести самостоятельно.

у меня версия 5.5
что где поменять?