# Ispell

Когда DataparkSearch используется с поддержкой `ispell`, для расширения поискового запроса нахождятся все грамматические формы введенных слов. При индексировании все найденные слова сохраняются в базе, а при поиске для каждого введенного слова находятся все его грамматические формы и уже с учетом всех этих форм производится поиск документов. Т.е., поисковик будет искать слово "test", если в качестве запроса введены слова "testing" или "tests".

## Два типа файлов ispell

DataparkSearch понимает два типа файлов ispell: файлы аффиксов и файлы словарей. Файл аффиксов `Ispell` состоит из правил для слов и имеет примерно такой формат:

    Flag V:
           E   > -E, IVE      # As in create> creative
          [ˆE] > IVE          # As in prevent > preventive
    Flag *N:
           E   > -E, ION      # As in create > creation
           Y   > -Y, ICATION  # As in multiply > multiplication
         [ˆEY] > EN           # As in fall > fallen

Файл словаря `Ispell` содержит сами слова и имеет следующий формат:

    wop/S
    word/DGJMS
    wordage/S
    wordbook
    wordily
    wordless/P

## Использование Ispell

Для использования `ispell` в DataparkSearch необходимо задать команды `Affix` и `Spell` в `search.htm`. Формат этих команд:

    Affix [язык] [кодировка] [имя файла аффиксов ispell]
    Spell [язык] [кодировка] [имя файла словаря ispell]

Первый параметр обоих команд - стандартный двуюуквенный код языка. Воторой - имя кодировки, при помощи которой закодированы файлы `ispell`. Третий параметр указывает имя файла, абсолютное, или отностительно поддиректории `etc/` корневой директории DataparkSearch

Поддерживает загрузка данных для нескольких языков, например:

    Affix en iso-8859-1 en.aff
    Spell en iso-8859-1 en.dict
    Affix de iso-8859-1 de.aff
    Spell de iso-8859-1 de.dict

Будет загружена поддержка для английского и немецкого языков.

Если используется `searchd`, эти команды следует указывать в `searchd.conf`.

Если DataparkSearch используется с поддержкой `ispell`, рекомендуется исопльзовать `searchd`, особенно для поддержки нескольких языков. Иначе время запуска `search.cgi` увеличивается.

## Настройка словарей

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

Вы также можете создать список таких слов по одному на каждую строку:

    rare.dict:
    ----------
    webmaster
    intranet
    .......
    www
    http
    ---------

Вы также можете указать флаги `ispel` для этих слов (описание флагов `ispel` смотрите в документации `ISpell`) для поиска всех словоформ, например, "webmaster" и "webmasters". Попробуйте найти в словарях `ispel` слово с таким же способом образования различных форм и скопировать его флаги для нового слова. Например, словарь английского языка содержит такую строчку:

`postmaster/MS`

Таким образом, webmaster с флагом MS, возможно будет правильным:

`webmaster/MS`

Скопируйте составленный вами словарь в поддиректорию `/etc` корневой директории установки DataparkSearch и добавьте соответсвующие команды в файл конфигурации.

## Где взять файлы Ispell

Вы можете найти файлы Ispell для многих языков на этой странице.

Для японского языка созданы квази-Ispell файлы, предназначенные для использования только с DataparkSearch. Вы можете скачать эти файлы с нашего веб-сервера или с одного из наших зеркал. См. .

## Модификация слов поисковых запросов

    Quffix [lang] [charset] [ispell-like suffix file name]

Команда `Quffix` похожа на команду `Affix`, описанную выше, за исключением того, что эти правила применяются к словам, указанным в запросе, а не к их нормальным формам, как это происходит для команды `Affix`. Загружаемый файл должен содержать только суффиксные правила (в терминах афиксных файлов ispell).

Эта команда предназначена, например, для указания правил перехода от одной части речи к другой в русском языке, когда это необходимо.