©
Ce document utilise Manuel du site Web PHP chinois Libérer
(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)
udm_set_agent_param — Set mnoGoSearch agent session parameters
$agent
, int $var
, string $val
)Defines mnoGoSearch session 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 16As 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 1If
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
版本 | 说明 |
---|---|
4.1.0 | UDM_PARAM_VARDIR was added.
|
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Note: Crosswords are supported only in mnoGoSearch 3.1.11 or later.
[#1] ywarnier at beeznest dot org [2006-05-12 16:37:53]
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)
[#2] adu at php dot net [2005-12-21 08:42:29]
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
[#3] GneralTsao [2005-07-18 11:27:16]
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
$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