udm_load_ispell_data
| ||||||||||
|
if (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_DB,’’,’’,1)) { printf("Error #%d: ’%s’ ", udm_errno($udm), udm_error($udm)); exit; } |
UDM_ISPELL_TYPE_AFFIX - указывает, что ispell-данные должны быть
загружены из файла, и инициирует загрузку файла аффиксов. В этом случае val1 определяет двухбуквенный код языка для которого загружаются аффиксы,
а val2 - путь к файлу. Пожалуйста, обратите внимание, что, если введён относительный
путь, модуль ищет файл не в UDM_CONF_DIR, а относительно текущего пути, т.е. пути, в котором выполняется скрипт.
В случае ошибки в этом режиме, например, если файл отсутствует, функция возвратит
FALSE, и будет выведено сообщение об ошибке. Доступ к тексту сообщения об ошибке не
может быть получен через udm_error() и
Пример:
if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,’en’,’/opt/ispell/en.aff’,0)) || (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,’ru’,’/opt/ispell/ru.aff’,0)) || (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,’en’,’/opt/ispell/en.dict’,0)) || (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,’ru’,’/opt/ispell/ru.dict’,1))) { exit; } |
Примечание: flag равен 1 только в последнем вызове.
UDM_ISPELL_TYPE_SPELL - указывает, что ispell-данные должны быть загружены из файла, и инициирует загрузку файла ispell-словаря. В этом
случае val1 определяет двухбуквенный код языка для которого загружаются аффиксы,
а val2 - путь к файлу. Пожалуйста, обратите внимание, что, если введён относительный
путь, модуль ищет файл не в UDM_CONF_DIR, а относительно текущего пути, т.е. пути, в котором выполняется скрипт.
В случае ошибки в этом режиме, например, если файл отсутствует, функция возвратит
FALSE, и будет выведено сообщение об ошибке. Доступ к тексту сообщения об ошибке не
может быть получен через udm_error() и
if ((! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,’en’,’/opt/ispell/en.aff’,0)) || (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,’ru’,’/opt/ispell/ru.aff’,0)) || (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,’en’,’/opt/ispell/en.dict’,0)) || (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,’ru’,’/opt/ispell/ru.dict’,1))) { exit; } |
Примечание: равен 1 только в последнем вызове.
UDM_ISPELL_TYPE_SERVER - включает поддержку spell-сервера. Параметр val1 указывает адрес хоста host, на котором работает spell-сервер. val2 ` ещё не используется, но в будущих релизах будет указывать номер порта, используемого spell-сервером. Параметр flag в этом случае не нужен, так как ispell-данные хранятся на spel-сервере уже отсортированными.
Spelld-сервер читает spell-данные из отдельного файла конфигурации (по умолчанию /usr/local/mnogosearch/etc/spelld.conf), сортирует их и сохраняет в памяти. С клиентами сервер сообщается двумя способами: все данные переносятся в индексатор (поэтому индексатор стартует быстрее), из search.cgi сервер получает слово для нормализации и затем передаёт клиенту (search.cgi) список форм нормализованных слов. Это даёт более быструю, в сравнении с режимами db и text, обработку запросов поиска (опуская загрузку и сортировку spell-данных).
udm_load_ispell_data() в режиме UDM_ISPELL_TYPE_SERVER фактически не загружает ispell-данные, а только определяет адрес сервера. Фактически сервер автоматически используется функцией udm_find() при выполнении поиска. При ошибках, например, если spell-сервер не запущен или указан неправильный хост, возвращаемых сообщений нет, и конвертация ispell не работает.
Примечание: эта функция доступна в mnoGoSearch 3.1.12 или новее.
Пример:
if (!udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SERVER,’’,’’,1)) { printf("Error loading ispell data from server<br> "); exit; } |
| ||||||
|
Нет комментариев. Ваш будет первым!