На главную

RiSearch Pro v.3.2 Manual

© С. Тарасов

Поиск по словоформам

      Данный раздел документации относится только к скрипту, поставляемому вместе с морфологическим модулем (демо-версия поставляется с обрезанной версией морфологического анализатора).

      Использование морфологического анализатора при поиске позволяет найти не только слова совпадающие с запросом, но и все словоформы введеного слова. Морфологический анализатор, применяемый в данном скрипте основан на словаре Зализняка и успешно обрабатывает такие слова, как "человек", "идти", "ребенок". То есть, пользователь, введя слово "идти" может найти также документы, где есть слова "шел", "идя", "шедший". Морфологический модуль в данный момент распознает около 1700000 словоформ и работа над ним продолжается.

      Учет словоформ можно отключить ( use_rumor => 0, ) и в этом случае поиск будет работать как в базовой версии скрипта.

      RiSearch Pro реализует два способа поиска с учетом словоформ. Каждый обладает своими достоинствами и недостатками.

  1. Нормализация индекса ( normalize_index => 1, )

          В этом режиме слова нормализуются во время индексации и в индексе сохраняются только словарные формы слов. Во время поиска слова из запроса также приводятся к словарной форме и ищутся в индексе. Индексирование с одновременной нормализацией требует примерно в 5 раз больше времени, но размер индекса получается немного меньше, чем без нормализации. Поиск работает с той же скоростью, что и без морфологии, но поиск по точной форме невозможен, потому что в индексе хранятся только нормальные формы слов.

  2. Расширение запроса ( normalize_index => 0, )

          В этом случае никаких действий со словоформами во время индексации не производится. индекс получается точно такой же, как и при использовании базовой версии скрипта (если у вас уже стоял RiSearch Pro без морфологического модуля, можно использовать старую базу). Во время поиска скрипт для каждого запрошенного слова находит все его словоформы и ищет их в индексе. Поиск при этом немного замедляется, особенно для глаголов, которые могут иметь более полусотни форм. Но даже для многословных запросов время поиска как правило не превышает одну секунду. В этом режиме возможет поиск по точной форме слова (для этого после слова в запросе надо поставить восклицательный знак).

      Базовая версия поискового скрипта имеет возможность поиска по началу слова (что позволяло некоторым образом заменить поиск по словоформам). В данной версии также есть эта возможность (для поиска по началу слова добавьте символ "*" в конце слова), но поскольку в ней есть поиск по словофрмам, использовать эту возможность не рекомендуется, это может существенно замедлить поиск, особенно когда используется режим "расширения запроса". Поэтому большие сайты желательно индексировать в режиме  INDEXING_SCHEME => 1 .



http://risearch.org С.Тарасов, © 2000-2003