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 или выше.

add a note add a note

User Contributed Notes 3 notes

up
0
adu at php dot net
19 years ago
I found an undocumented function: udm_set_agent_param_ex
For example, if you want to sort results by date, do this:
udm_set_agent_param_ex($udm_agent, 's', 'DR');
See http://www.mnogosearch.org/doc/msearch-doingsearch.html for details
up
0
GneralTsao
19 years ago
One useful parameter not documented above is UDM_PARAM_SYNONYM.  If you understand how this API works in general, you should be able to figure it out, but here goes anyway:

<?php
/* Make sure that PHP is able to find the file.  Unlike mnogosearch's indexer and search.cgi, it doesn't know the directory of the installation. */
$synFile="/usr/local/mnogosearch/etc/synonym/english.syn";
udm_set_agent_param($agent, UDM_PARAM_SYNONYM, $synFile);
?>

Piece of cake.

For more about mnogosearch's handling of synonyms see http://www.mnogosearch.org/doc/msearch-fuzzy.html#synonyms
up
-1
ywarnier at beeznest dot org
18 years ago
Other possible session parameters not documented but found in the default php frontend on http://www.mnogosearch.org:
UDM_PARAM_BROWSER_CHARSET - ?
UDM_PARAM_HLBEG - defines the tag to use before an highlighted search term
UDM_PARAM_HLBEG  - defines the tag to use after an highlighted search term
UDM_PARAM_QSTRING - defines the search term (or query string)
UDM_PARAM_REMOTE_ADDR - ?
UDM_PARAM_QUERY - ?
UDM_PARAM_STORED - ?
UDM_PARAM_GROUPBYSITE - toggles the "group by site" feature (UDM_ENABLED or UDM_DISABLED)
UDM_PARAM_SITEID - ?
UDM_PARAM_DETECT_CLONES - enable the "detect clone" feature (UDM_ENABLED or UDM_DISABLED)
To Top