Новые книги

Безусловно, на жизнь каждого человека прямое влияние оказывает его окружение. Успешные люди отмечают, что большую часть окружающих их людей составляют такие же успешные люди. Книга «Неслучайные связи» написана с одной лишь целью: выявить пошаговые алгоритмы эффективного выстраивания связей человека. Кто-то скажет, что это дело случая, везения или вовсе удачи! «Оказаться в нужном месте в нужное время» – вот что часто нам приходится слышать. Да, отчасти это соответствует действительности, однако исследования показали, что лишь на 15 %. И наша главная задача – разобраться, в чем же секрет оставшихся 85 %. Книга написана для желающих систематизировать свои представления об отношениях между людьми, проанализировать свой социальный капитал и научиться двигаться к поставленным целям шаг за шагом.
Книга посвящена семейству операционных систем UNIX и содержит информацию о принципах организации, идеологии и архитектуре, объединяющих различные версии этой операционной системы.

В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).

Для широкого круга пользователей

udm_load_ispell_data

Учебник РНР
НазадВперёд

udm_load_ispell_data

(PHP 4 >= 4.0.5)

udm_load_ispell_data - загружает ispell-данные.

Описание

int udm_load_ispell_data (int agent, int var, string val1, string val2, int flag)

Возвращает TRUE при успехе, FALSE при ошибке.

agent - ссылка на идентификатор агента, полученная вызовом udm_alloc_agent().

var - параметр, указывающий источник ispell-данных. Может иметь значения, указанные далее.

После использования этой функции, чтобы освободить память, выделенную для ispell-данных, используйте udm_free_ispell_data(), даже если вы применяете режим UDM_ISPELL_TYPE_SERVER.

Самым быстрым режимом является UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT медленнее, а UDM_ISPELL_TYPE_DB - самый медленный. Вышеприведённый патэрн TRUE для mnoGoSearch 3.1.10 - 3.1.11. Планируется ускорить режим DB в будущих версиях, и он будет быстрее режима TEXT.

  • UDM_ISPELL_TYPE_DB - указывает, что ispell-данные должны быть загружены из SQL. В этом случае параметры val1 и val2 игнорируются и должны быть оставлены пустыми. flag должен быть равен 1.

    Примечание: flag указывает, что после загрузки ispell-данных из определённого ресурса они должны быть отсортированы (это необходимо для корректной работы ispell). При загрузке ispell-данных из файлов может быть несколько вызовов udm_load_ispell_data(), нет смысла сортировать данные после каждого вызова, и сортировка делается только после последнего вызова. Поскольку в режиме db все данные загружаются одним вызовом, этот параметр должен иметь значение 1. При ошибке в этом режиме, например, если ispell-таблицы отсутствуют, функция возвратит FALSE, а код и сообщение об ошибке будут доступны через udm_error() м udm_errno().

    Пример:
    if (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_DB,'','',1)) {
      printf("Error #%d: '%s'\n", udm_errno($udm), udm_error($udm));
      exit;
    }
  • UDM_ISPELL_TYPE_AFFIX - указывает, что ispell-данные должны быть загружены из файла, и инициирует загрузку файла аффиксов. В этом случае val1 определяет двухбуквенный код языка для которого загружаются аффиксы, а val2 - путь к файлу. Пожалуйста, обратите внимание, что, если введён относительный путь, модуль ищет файл не в UDM_CONF_DIR, а относительно текущего пути, т.е. пути, в котором выполняется скрипт. В случае ошибки в этом режиме, например, если файл отсутствует, функция возвратит FALSE, и будет выведено сообщение об ошибке. Доступ к тексту сообщения об ошибке не может быть получен через udm_error() и udm_errno(), поскольку эти функции могут возвращать только сообщения, ассоциированные с SQL. См. описание параметра flag в UDM_ISPELL_TYPE_DB.

    Пример:
    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() и udm_errno(), поскольку эти функции могут возвращать только сообщения, ассоциированные с SQL. См. описание параметра flag в UDM_ISPELL_TYPE_DB.

    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>\n");
        exit;
    }

Назад Оглавление Вперёд
udm_get_res_param Вверхudm_open_stored