# udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_set_agent_param — Set mnoGoSearch agent session parameters

### Description

udm_set_agent_param ( resource `$agent` , int `$var` , string `$val` ) : bool

Defines mnoGoSearch session parameters.

### Parameters

`agent`

  A link to Agent, received after call to udm_alloc_agent().

`var`

  The following parameters and their values are available:

  - `UDM_PARAM_PAGE_NUM` - used to choose search results page number (results are returned by pages beginning from 0, with `UDM_PARAM_PAGE_SIZE` results per page).
  - `UDM_PARAM_PAGE_SIZE` - number of search results displayed on one page.
  - `UDM_PARAM_SEARCH_MODE` - search mode. The following values available: `UDM_MODE_ALL` - search for all words; `UDM_MODE_ANY` - search for any word; `UDM_MODE_PHRASE` - phrase search; `UDM_MODE_BOOL` - boolean search. See udm_find() for details on boolean search.
  - `UDM_PARAM_CACHE_MODE` - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: `UDM_CACHE_ENABLED`, `UDM_CACHE_DISABLED`.
  - `UDM_PARAM_TRACK_MODE` - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current Unix timestamp in seconds. Available values: `UDM_TRACK_ENABLED`, `UDM_TRACK_DISABLED`.
  - `UDM_PARAM_PHRASE_MODE` - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: `UDM_PHRASE_ENABLED` and `UDM_PHRASE_DISABLED`. Please note, that if phrase search is enabled (`UDM_PHRASE_ENABLED`), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and built-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well. Examples of phrase search: "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase
  - `UDM_PARAM_CHARSET` - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...
  - `UDM_PARAM_STOPFILE` - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to `UDM_CONF_DIR`, the module looks for the file in relation to current path, i.e. to the path where the PHP script is executed.)
  - `UDM_PARAM_STOPTABLE` - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.
  - `UDM_PARAM_WEIGHT_FACTOR` - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:

              URLWeight     1
              BodyWeight    2
              TitleWeight   4
              KeywordWeight 8
              DescWeight    16

    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 aggregate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight. This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:

               E is a factor for weight 1  (URL Weight bit)
               D is a factor for weight 2  (BodyWeight bit)
               C is a factor for weight 4  (TitleWeight bit)
               B is a factor for weight 8  (KeywordWeight bit)
               A is a factor for weight 16 (DescWeight bit)

    Examples: `UDM_PARAM_WEIGHT_FACTOR`=00001 will search through URLs only. `UDM_PARAM_WEIGHT_FACTOR`=00100 will search through Titles only. `UDM_PARAM_WEIGHT_FACTOR`=11100 will search through Title,Keywords,Description but not through URL and Body. `UDM_PARAM_WEIGHT_FACTOR`=F9421 will search through:

                Description with factor 15  (F hex)
                Keywords with factor 9
                Title with factor  4
                Body with factor 2
                URL with factor 1

    If `UDM_PARAM_WEIGHT_FACTOR` variable is omitted, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.
  - `UDM_PARAM_WORD_MATCH` - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values: `UDM_MATCH_BEGIN` - word beginning match; `UDM_MATCH_END` - word ending match; `UDM_MATCH_WORD` - whole word match; `UDM_MATCH_SUBSTR` - word substring match.
  - `UDM_PARAM_MIN_WORD_LEN` - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this parameter value is inclusive, i.e. if `UDM_PARAM_MIN_WORD_LEN`=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.
  - `UDM_PARAM_ISPELL_PREFIXES` - Possible values: `UDM_PREFIXES_ENABLED` and `UDM_PREFIXES_DISABLED`, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().
  - `UDM_PARAM_CROSS_WORDS` - enables or disables crosswords support. Possible values: `UDM_CROSS_WORDS_ENABLED` and `UDM_CROSS_WORDS_DISABLED`. The crosswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.
  - `UDM_PARAM_VARDIR` - specifies a custom path to directory where indexer stores data when using built-in database and in cache mode. By default /var directory of mnoGoSearch installation is used. Can have only string values.
`val`

### Changelog

Version | Description
--- | ---
4.1.0 | `UDM_PARAM_VARDIR` was added.

### Return Values

Returns `TRUE` on success or `FALSE` on failure.

### Notes

> Note: Crosswords are supported only in mnoGoSearch 3.1.11 or later.