Модуль 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.zip | 9.79 КБ |
rustemmer_003.zip | 9.83 КБ |
search.zip | 14.77 КБ |
Комментарии
fantastish
почему никто не открывает проекты на drupal.org? Интересно... можно было бы сюда тоже модуль project тогда поставить...
не знаю. у меня с этим модулем поиск работает так же, как раньше
А вы не забыли переиндексировать содержимое сайта?
> А вы не забыли переиндексировать содержимое сайта?
По крайней мере, я жал кнопку "Переиндексировать" и сейчас Друпал показывает, что сайт проиндексирован на 100%.
Тем не менее, если я ввожу, напр., слово композиция, то композициям находится, а композиции — нет, хотя такая форма слова точно имеется.
ух ты!!! работает! спасибо!
Спасибо.
Попробую еще раз. Если у других работает…
Проверил - действительно, у меня поиск тоже не всегда работает корректно.
Как можно проверить: посмотрите содержимое таблицы search_index. Если встречаются кракозябры, значит индексация прошла некорректно.
Как исправить: установить новую версию модуля.
Чем вызван баг: ошибка была вызвана
strtr($words, 'ё','е')
, т.е. заменой всех 'ё' на 'е'. По непонятным причинам при выполнении такой замены происходит "коверканье" слов.Спасибо! Работает. Только не выделяет жирным измененные формы слова.
За форматирование результатов поиска (втч и выделение жирным) отвечает функция search_excerpt, входящая в состав модуля search. Я не вижу способа перегрузить ее, так что, похоже, единственный способ - вносить изменения непосредственно в модуль search.
Если хотите, можете загрузить исправленный модуль search, на свой страх и риск у меня работает
А можно как-то этот модуль использовать в 5 версии? А то проблема морфологического поиска ведь никуда не делась...
http://my.ukrweb.info/rustemmer-drupal-6
Для шестого друпала (оттестил на 6.2)
Без подсветки!
Спасибо!!!
Там же и для пятой положил
а у меня вообще поиск не работает не знаю в чем дело , вернее догадываюсь , нажимаю проиндексировать сайт , а он почему то не индексирует , после индексации выдает что проидексировано 0% в чем дело кто подскажет ?
запусти крон
>2. замените существующий search.module на соответствующий файл из архива search.zip (если у вас drupal 4.7.3). Если у вас другая версия drupal, изменения в модуль search необходимо внести самостоятельно.
у меня версия 5.5
что где поменять?
а для 6-го друпала что посоветуете?
podarok выше уже выкладывал.
Все здесь в комментах: http://drupal.ru/node/3753