# Ispell

When DataparkSearch is used with ispell support enabled, it automatically extend search query by all grammatical forms of the query words. E.g. search front-end will try to find the word "test" if "testing" or "tests" is given in search query.

## Two types of ispell files

DataparkSearch understands two types of ispell files: affixes and dictionaries. Ispell affixes file contains rules for words and has approximately the following format:

    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 dictionary file contains words themselves and has the following format:

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

## Using Ispell

To make DataparkSearch support ispell you must specify `Affix` and `Spell` commands in `search.htm` file. The format of commands:

    Affix [lang] [charset] [ispell affix file name]
    Spell [lang] [charset] [ispell dictionary filename]

The first parameter of both commands is two letters language abbreviation. The second is ispell files charset. The third one is filename. File names are relative to DataparkSearch `/etc` directory. Absolute paths can be also specified.

Simultaneous loading of several languages is supported, e.g.:

    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

Will load support for both English and German languages.

If you use `searchd`, add the same commands to `searchd.conf`.

When DataparkSearch is used with ispell support it is recommended to use `searchd`, especially for several languages support. Otherwise the starting time of `search.cgi` increases.

## Customizing dictionary

It is possible that several rare words are found in your site which are not in ispell dictionaries. In such case, an entry with longest match suffix is taking to produce word forms.

But you can also create the list of such words in plain text file with the following format (one word per line):

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

You may also use ispell flags in this file (for ispell flags refer to ISpell documentation). This will allow not writing the same word with different endings to the rare words file, for example "webmaster" and "webmasters". You may choose the word which has the same changing rules from existing ispell dictionary and just to copy flags from it. For example, English dictionary has this line:

`postmaster/MS`

So, webmaster with MS flags will be probably OK:

`webmaster/MS`

Then copy this file to `/etc` directory of DataparkSearch and add this file by `Spell` command in DataparkSearch configuration:

During next reindexing using of all documents new words will be considered as words with correct spelling. The only really incorrect words will remain.

## Where to get Ispell files

You may find ispell files for many of languages at this page.

For Japanese language there exist quasi-ispell files suitable for use with DataparkSearch only. You may get this data from our web site or from one of our mirrors. See .

## Query words modification

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

The `Quffix` command is similar to `Affix` command described above, except that these rules apply to the query words, bot not to the normal word forms as it is done for `Affix` command. The file loaded with this command must contain only suffix rules (in terms of ispell affix files).

This command is suitable, for example, to specify the rules to switch from one part of speech to an another for the Russian language when it is appropriate.