udm_set_agent_param
(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)
udm_set_agent_param — Установить параметры сессии mnoGoSearch
Описание
udm_set_agent_param
( resource
$agent
, int $var
, string $val
) : boolУстанавливает параметры сессии mnoGoSearch.
Список параметров
-
agent
-
Идентификатор ресурса агента, полученный из udm_alloc_agent().
-
var
-
Доступные параметры и их значения:
-
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. Допустимые значения: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 поиск по фразам доступен только для SQL и встроенной базы данных. Начиная с версии 3.1.11 фразы доступны и в режиме кеширования. Пример поиска фраз: "Arizona desert" - этот запрос вернет все документы, содержащие "Arizona desert" в виде точной фразы. Обратите внимание, что фразу нужно обрамить двойными кавычками. -
UDM_PARAM_CHARSET
- определяет локальную кодировку. Допустимые значения: набор кодировок, поддерживаемых mnoGoSearch, например koi8-r, cp1251, ... -
UDM_PARAM_STOPFILE
- определяет путь до файла со стоп-словами. (Есть небольшой нюанс. В mnoGoSearch, если задан относительный путь, или путь вообще не задан, то поиск файла будет идти отUDM_CONF_DIR
, но в модуле будет использован путь относительно текущей директории, т.е. той, где запущен скрипт PHP.) -
UDM_PARAM_STOPTABLE
- Загружать стоп-слова из заданной таблицы в БД. Вы можете использовать несколько команд StopwordTable. Эта команда не будет работать, если mnoGoSearch собран без поддержки SQL. -
UDM_PARAM_WEIGHT_FACTOR
- представляет весовые факторы для определенных частей документа. Сейчас поддерживаются такие части: body, title, keywords, description, url. Для активации этого функционала используйте степени числа 2 в командах *Weight файла indexer.conf. Представим, что у нас есть такие веса:URLWeight 1 BodyWeight 2 TitleWeight 4 KeywordWeight 8 DescWeight 16
Так как индексатор использует побитовое ИЛИ для развесовки когда слово присутствует в разных частях документа, то становится возможным отследить наличие этого слова в разных частях документа. Слово, присутствующее только в теле будет иметь вес 00000010, слово, присутствующее во всех частях документа - 00011111. Значение этого параметра является строкой шестнадцатеричных цифр ABCDE. Каждая цифра - фактор для соответствующего бита в весах слов. Для заданной выше конфигурации весов:E фактор для веса 1 (URLWeight bit) D фактор для веса 2 (BodyWeight bit) C фактор для веса 4 (TitleWeight bit) B фактор для веса 8 (KeywordWeight bit) A фактор для веса 16 (DescWeight bit)
Примеры:UDM_PARAM_WEIGHT_FACTOR
=00001 будет искать только в URL.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
опущена, то будут взяты оригинальные веса. Для примера выше это значит, что наибольший вес будет у description с весом 16. -
UDM_PARAM_WORD_MATCH
- совпадение слов. Вы можете использовать этот параметр для выбора типа сравнения слов. Этот функционал работает только для режимов "single" и "multi" при использовании SQL и встроенной баз данных. Не работает в режиме кеширования и прочих режимах, так как в них используются контрольные суммы слов и не работает поиск по подстроке. Допустимые значения:UDM_MATCH_BEGIN
- сравнение слов по их началу;UDM_MATCH_END
- сравнение слов по их окончанию;UDM_MATCH_WORD
- полное совпадение;UDM_MATCH_SUBSTR
- сравнение как с подстрокой. -
UDM_PARAM_MIN_WORD_LEN
- задает минимальную длину слов. Любое слово, короче заданного размера, будет считаться стоп-словом. Обратите внимание, что стоп-словами будут считаться слова строго меньше заданного значения. Например приUDM_PARAM_MIN_WORD_LEN
=3, слова из трех букв не будут считаться стоп-словами. Значение по умолчанию 1. -
UDM_PARAM_ISPELL_PREFIXES
- Допустимые значения:UDM_PREFIXES_ENABLED
иUDM_PREFIXES_DISABLED
, что, соответственно, разрешает или запрещает использование префиксов. Т.е. если в поисковом запросе присутствует слово "tested", то также будут найдены "test", "testing" и т.д. По умолчанию поддерживаются только суффиксы. Префиксы же обычно меняют значение слов. К примеру если кто-то ищет слово "tested" и, при этом, очень хочет, чтобы также было найдено и "untested". Поддержка префиксов может быть полезна проверки орфографии. Для включения поддержки ispell вам придется загрузить его данные с помощью udm_load_ispell_data(). -
UDM_PARAM_CROSS_WORDS
- включение или отключение поддержки функционала вставки слов. Допустимые значения:UDM_CROSS_WORDS_ENABLED
иUDM_CROSS_WORDS_DISABLED
. Данный функционал позволяет вставлять слова между <a href="xxx"> и </a> в ссылках на документ. Работает в режиме SQL, но не в режимах внутренней БД или кеширования. -
UDM_PARAM_VARDIR
- задает путь к директории, где индексатор будет хранить данные с использованием встроенной БД или в режиме кеширования. По умолчанию используется директория /var сервера установки mnoGoSearch.
-
-
val
-
Список изменений
Версия | Описание |
---|---|
4.1.0 |
Добавлена константа UDM_PARAM_VARDIR .
|
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Примечания
Замечание: Вставка слов поддерживается в mnoGoSearch 3.1.11 или выше.