Модуль морфологического поиска (stemming) для русского языка
Прислано: Algenon
чт, 21/09/2006 - 16: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.zip | 9.79 кб |
| rustemmer_003.zip | 9.83 кб |
| search.zip | 14.77 кб |
- Algenon's blog
- Для комментирования войдите или зарегистрируйтесь
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% в чем дело кто подскажет ?
- Для комментирования войдите или зарегистрируйтесь
а у меня вообще поиск не работает не знаю в чем дело , вернее догадываюсь , нажимаю проиндексировать сайт , а он почему то не индексирует , после индексации выдает что проидексировано 0% в чем дело кто подскажет ?
запусти крон
- Для комментирования войдите или зарегистрируйтесь
>2. замените существующий search.module на соответствующий файл из архива search.zip (если у вас drupal 4.7.3). Если у вас другая версия drupal, изменения в модуль search необходимо внести самостоятельно.
у меня версия 5.5
что где поменять?
- Для комментирования войдите или зарегистрируйтесь
а для 6-го друпала что посоветуете?
- Для комментирования войдите или зарегистрируйтесь
а для 6-го друпала что посоветуете?
podarok выше уже выкладывал.
- Для комментирования войдите или зарегистрируйтесь
Спасибо!!!
- Для комментирования войдите или зарегистрируйтесь
Все здесь в комментах: http://drupal.ru/node/3753
- Для комментирования войдите или зарегистрируйтесь










Комментарии