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

udm_set_agent_param

(PHP 4 >= 4.0.5)

udm_set_agent_param - устанавливает параметры сессии агента mnoGoSearch.

Описание

int udm_set_agent_param (int agent, int var, string val)

udm_set_agent_param() возвращает TRUE при успехе, FALSE при ошибке. Определяет параметры сессии mnoGoSearch.

Имеются следующие параметры и значения:

  • UDM_PARAM_PAGE_NUM - используется для выбора номера страницы результата поиска (результаты возвращаются страницей, начиная с 0, с UDM_PARAM_PAGE_SIZE результатов на страницу).

  • UDM_PARAM_PAGE_SIZE - количество результатов поиска, отображаемых на одной странице.

  • UDM_PARAM_SEARCH_MODE - режим поиска. Доступны значения: UDM_MODE_ALL - искать все слова; UDM_MODE_ANY - искать любое слово; UDM_MODE_PHRASE - поиск фразы; UDM_MODE_BOOL - булев поиск. См. в udm_find() детали о булевом поиске.

  • UDM_PARAM_CACHE_MODE - включает/выключает режим кэширования результатов поиска. Если включён, машина поиска сохранит результаты поиска на диске. Если аналогичный поиск выполняется позднее, машина возьмёт результаты из кэша, что быстрее. Доступны значения: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - включает/выключает режим trackquery. Начиная с версии 3.1.2, mnoGoSearch имеет поддержку трэкинга запросов. Заметьте, что этот трэкинг реализован только в SQL-версии и недоступен во встроенной БД. Для использования трэкинга вы должны создать таблицы для поддержки трэкинга. Для MySQL используйте create/mysql/track.txt. При выполнении поиска конечный этап использует эти таблицы для хранения слов запроса, количества найденных документов и и текущий UNIX timestamp в секундах. Доступные значения: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - определяет, использует ли индексная БД фразы (параметр "phrase" в indexer.conf). Возможные значения: UDM_PHRASE_ENABLED и UDM_PHRASE_DISABLED. Заметьте, что, если включён поиск фраз (UDM_PHRASE_ENABLED), можно также искать в любом режиме (ANY, ALL, BOOL или PHRASE). В версии 3.1.10 mnoGoSearch поиск фраз поддерживается только в режимах sql и встроенной БД, а, начиная с 3.1.11, фразы поддерживаются также в режиме cachemode.

    Примеры фраз для поиска:

    "Arizona desert" - этот запрос возвращает все индексированные документы, содержащие фразу "Arizona desert". Заметьте, что нужно поместить двойные кавычки вокруг фразы.

  • UDM_PARAM_CHARSET - определяет локальный charset/набор символов. Доступны значения: набор charsets, поддерживаемых mnoGoSearch, например, koi8-r, cp1251, ...

  • UDM_PARAM_STOPFILE - определяет имя и путь к файлу stopwords. (Есть небольшое отличие от mnoGoSearch - в то время как во mnoGoSearch введён относительный путь или никакого пути, он ищет файл относительно UDM_CONF_DIR, модель ищет файл относительно текущего пути, т.е. пути, где выполняется php-скрипт.)

  • UDM_PARAM_STOPTABLE - загружает stop-слова из данной SQL-таблицы. Вы можете использовать несколько команд StopwordTable. Эта команда не действует, если скомпилировано без поддержки SQL-БД.

  • UDM_PARAM_WEIGHT_FACTOR - представляет weight-факторы для специфических частей документа. В настоящее время поддерживаются body, title, keywords, description, url. Для активации этой возможности используйте степени 2 в *Weight командах файла indexer.conf.
    Представим, что у нас имеются следующие weights:

      URLWeight        1
      BodyWeight       2
      TitleWeight       4
      KeywordWeight  8
      DescWeight     16
     

    Поскольку индексатор использует битовую операцию OR для weights слов, когда некоторые слова представлены несколько раз в том же документе, можно на этапе поиска определять появление слова в разных частях документа. Слово, которое появляется только в теле/body, будет иметь агрегатный вес 00000010 (в двоичной нотации). Слово, используемое во всех частях документа, будет иметь агрегатный вес 00011111.

    Значением этого параметра является строка 16-ричных цифр ABCDE. Каждая цифра является фактором для соответствующего бита в весе слова. Для данной выше конфигурации весов:


       E это фактор для веса 1  (бит URL Weight)
       D это фактор для веса 2  (бит BodyWeight)
       C это фактор для веса 4  (бит TitleWeight)
       B это фактор для веса 8  (бит KeywordWeight)
       A это фактор для веса 16 (бит DescWeight)
     

    Примеры:

    UDM_PARAM_WEIGHT_FACTOR=00001 будет искать только в URLs.

    UDM_PARAM_WEIGHT_FACTOR=00100 будет искать только в Titles.

    UDM_PARAM_WEIGHT_FACTOR=11100 будет искать в Title, Keywords, Description, но не в URL и в Body.

    UDM_PARAM_WEIGHT_FACTOR=F9421 будет искать в:


        Description с фактором 15  (F hex)
        Keywords с фактором  9
        Title с фактором  4
        Body с фактором  2
        URL с фактором 1
     

    Если переменная UDM_PARAM_WEIGHT_FACTOR опущена, принимается оригинальное weight-значение для сортировки результатов. Для данной выше конфигурации весов это означает, что описание документа имеет самый большой вес 16.

  • UDM_PARAM_WORD_MATCH - совпадение слова. Вы можете использовать этот параметр для выбора типа совпадения слов. Это работает только в режимах "single" и "multi" с использованием БД на основе SQL и встроенной БД. Не работает в режиме cachemode и других режимах, поскольку они используют CRC слов и не поддерживают поиск подстрок. Доступны значения:

    UDM_MATCH_BEGIN - совпадение начала слов;

    UDM_MATCH_END - совпадение конца слов;

    UDM_MATCH_WORD - совпадение всего слова;

    UDM_MATCH_SUBSTR - совпадение подстроки.

  • UDM_PARAM_MIN_WORD_LEN - определяет минимальную длину слова. Любое слово, короче этого лимита, считается stopword. Заметьте, что значение этого параметра включается, т.е., если UDM_PARAM_MIN_WORD_LEN=3, слово длиной в 3 символа не будет считаться stopword, а слово длиной в 2 символа - считается. По умолчанию значение 1.

  • UDM_PARAM_ISPELL_PREFIXES - возможные значения: UDM_PREFIXES_ENABLED и UDM_PREFIXES_DISABLED, включающие/выключающие использование префиксов. Например, если слово "tested" имеется в запросе на поиск, также ищутся слова вроде "test", "testing", etc. По умолчанию поддерживаются только суффиксы. Префиксы обычно изменяют значение слов, например, если кто-нибудь ищет слово "tested", то другому нужно только "untested". Поддержка префиксов может понадобиться также для целей проверки правописания на сайте. для включения ispell вы должны загрузить ispell-данные функцией udm_load_ispell_data() .

  • UDM_PARAM_CROSS_WORDS - включает/выключает поддержку перекрёстных слов/crosswords. Возможные значения: UDM_CROSS_WORDS_ENABLED и UDM_CROSS_WORDS_DISABLED.

    corsswords даёт возможность присваивать слова между тэгами <a href="xxx"> и </a> также документу, к которому ведёт ссылка. Это работает в режиме SQL-БД и не поддерживается во встроенной БД и в Cachemode.

    Примечание: Crosswords поддерживаются только во mnoGoSearch 3.1.11 или новее.

  • UDM_PARAM_VARDIR - специфицирует специальный путь к директории, где индексатор хранит данные при использовании встроенной БД и режима cache. По умолчанию используется директория /var инсталяции mnoGoSearch. Может иметь только строковые значения. Этот параметр доступен в PHP 4.1.0 или новее.

  • UDM_PARAM_VARDIR - специфицирует специальный путь к директории, где индексатор хранит данные при использовании встроенной БД и режима cache. По умолчанию используется директория /var инсталяцииmnoGoSearch. Может иметь только строковые значения. Этот параметр доступен в PHP 4.1.0 или новее.


Назад Оглавление Вперёд
udm_open_stored Вверх Функции mSQL