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
(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)
udm_set_agent_param — Modifie les paramètres de l'agent MnoGoSearch
$agent
, int $var
, string $val
) : boolModifie les paramètres de l'agent MnoGoSearch.
agent
Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().
var
Les paramètres suivants et leurs valeurs sont disponibles :
UDM_PARAM_PAGE_NUM
- Utilisé pour choisir le numéro de
groupe de résultat (les résultats sont retournés
par groupe, commençant à 0, avec UDM_PARAM_PAGE_SIZE
résultats par page).
UDM_PARAM_PAGE_SIZE
- Nombre de résultats affichés par
page.
UDM_PARAM_SEARCH_MODE
- Mode de recherche. Les valeurs suivantes sont
disponibles : UDM_MODE_ALL
- recherche tous les mots ;
UDM_MODE_ANY
-
recherche l'un des mots ; UDM_MODE_PHRASE
- recherche une phrase;
UDM_MODE_BOOL
- recherche booléenne. Voir
udm_find() pour plus de détails sur les
recherches booléennes.
UDM_PARAM_CACHE_MODE
- Active/désactive le cache. Lorsque le
cache est activé, le moteur de recherche va stocker les
résultats sur le disque. Lorsque deux requêtes seront
similaires, il pourra retourner les résultats plus rapidement,
sans recherche. Valeurs disponibles : UDM_CACHE_ENABLED
,
UDM_CACHE_DISABLED
.
UDM_PARAM_TRACK_MODE
- Active le mode de suivi de requête.
Depuis la version 3.1.2, mnoGoSearch dispose d'un suivi de
requête. Notez que ce suivi n'est implémenté
qu'avec les versions SQL et n'est pas disponible avec les bases de
données intégrées. Pour utiliser ce suivi, vous
devez créer des tables de suivi. Pour mysql, utilisez le
script create/mysql/track.txt. Lorsque vous
effectuez une recherche avec l'interface, ces tables stockeront les
mots recherchés ainsi que le nombre de mots trouvés, et
la date. Valeurs disponibles : UDM_TRACK_ENABLED
,
UDM_TRACK_DISABLED
.
UDM_PARAM_PHRASE_MODE
- indique si les index des bases de
données utilisent des phrases (paramètre "phrase" dans
indexer.conf). Valeurs disponibles : UDM_PHRASE_ENABLED
et
UDM_PHRASE_DISABLED
. Notez bien que si la recherche par phrase est
activée (UDM_PHRASE_ENABLED
), il est toujours possible de faire
des recherches dans d'autres modes, (ANY
, ALL
,
BOOL
ou PHRASE
). En
version 3.1.10 de mnoGoSearch, la recherche par phrase n'est
supportée que pour les modes SQL et intégré,
tandis qu'en 3.1.11, la recherche par phrase est supportée par
le mode cache.
Exemple de recherche par phrase :
"Arizona desert"
: cette requête retourne tous les documents qui
contiennent les mots "Arizona desert" comme une phrase. Notez que
vous devez mettre des guillemets doubles autour des phrases.
UDM_PARAM_CHARSET
- Définit le jeu de caractères local.
Valeurs disponibles : tous les jeux supportés par mnoGoSearch.
koi8-r, cp1251, ...
UDM_PARAM_STOPFILE
- Définit le nom et le chemin du fichier de
mots ignorés. Il y a une petite différence avec
mnoGoSearch : avec mnoGoSearch, si le chemin est NULL
ou relatif,
il est utilisé à partir de UDM_CONF_DIR
, alors qu'en
PHP, le module va rechercher à partir du chemin courant,
c'est-à-dire celui du script courant.
UDM_PARAM_STOPTABLE
- Charge la liste des mots ignorés depuis
une table SQL. Vous pouvez utiliser plusieurs tables SQL. Cette
commande n'a aucun effet si mnoGoSearch n'a pas été
compilé avec le support de base de données.
UDM_PARAM_WEIGHT_FACTOR
- Représente le poids relatif des
différentes parties d'un document. Actuellement, le corps,
titre, mots-clés, descriptions et url sont supportés.
Pour activer cette fonctionnalité, utilisez le degré 2
des commandes *Weight, dans le fichier
indexer.conf. Imaginons que vous avez choisi les
poids suivants :
URLWeight 1 BodyWeight 2 TitleWeight 4 KeywordWeight 8 DescWeight 16Comme l'indexeur utilise l'opérateur de bits OR pour mesurer le poids des mots, il est possible que le même mot soit trouvé plusieurs fois dans le même document lors des recherches. Un mot qui n'apparaît qu'une fois dans le corps sera défini par 00000010 (notation binaire). Un mot qui apparaîtra dans plusieurs parties pourra avoir la notation 00011111. La valeur de ce paramètre est une chaîne de chiffres hexadécimaux, sous la forme
ABCDE
. Chaque chiffre est
un facteur correspondant à un poids affecté à
une partie du document. Pour la situation décrite ci-dessus :
E est le facteur de poids 1 (URL Weight bit) D est le facteur de poids 2 (BodyWeight bit) C est le facteur de poids 4 (TitleWeight bit) B est le facteur de poids 8 (KeywordWeight bit) A est le facteur de poids 16 (DescWeight bit)Exemples :
UDM_PARAM_WEIGHT_FACTOR
=00001 ne recherche que dans les URL.
UDM_PARAM_WEIGHT_FACTOR
=00100 ne recherche que dans les Titres.
UDM_PARAM_WEIGHT_FACTOR
=11100 recherche dans les
Titres, Mots-clés, Description mais pas dans le Corps ou les
URL.
UDM_PARAM_WEIGHT_FACTOR
=F9421 recherche dans :
Description avec un poids de 15 (F hex) Mots-clés avec un poids de 9 Titre avec un poids de 4 Corps avec un poids de 2 URL avec un poids de 1Si
UDM_PARAM_WEIGHT_FACTOR
est omis, la valeur par défaut est
utilisée.
UDM_PARAM_WORD_MATCH
- Recherche des mots. Vous pouvez utiliser ce
paramètre pour choisir le type de recherche de mots. Cette
fonctionnalité n'est valable qu'en mode "single" et "multi",
avec les bases SQL ou intégrée. Elle ne fonctionne pas
en mode intégré, ni avec d'autres modes, car les CRC ne
supportent pas les recherches de sous-chaînes. Les valeurs
disponibles sont :
UDM_MATCH_BEGIN
- début de mot;
UDM_MATCH_END
- fin de mot;
UDM_MATCH_WORD
- tout le mot;
UDM_MATCH_SUBSTR
- une sous-partie de mot.
UDM_PARAM_MIN_WORD_LEN
- définit les tailles extrêmes de
mots. Tout mot plus court que la limite inférieure est
ignoré. Notez que ce paramètre est inclusif,
c'est-à-dire que si UDM_PARAM_MIN_WORD_LEN
=3, un mot de 3
caractères ne sera pas ignoré, alors qu'un mot de 2
caractères le sera. Par défaut, la valeur
est de 1.
UDM_PARAM_ISPELL_PREFIXES
- Valeurs possibles :
UDM_PREFIXES_ENABLED
et UDM_PREFIXES_DISABLED
. Ces valeurs activent et désactivent
le support des préfixes. Par exemple, si le mot "testé"
est placé dans la requête de recherche, les mots tels
"test", "tester", etc. seront aussi recherchés. Les
suffixes sont supportés par défaut. Les préfixes
modifient généralement le sens des mots. Par exemple, si
vous cherchez "testé", vous ne souhaitez pas trouver
"protesté" ou "contesté". Le support des
préfixes peut cependant être utilisé pour des
raisons d'orthographe. Pour activer ispell, vous devez charger les
données ispell avec la fonction
udm_load_ispell_data().
UDM_PARAM_CROSS_WORDS
- Active ou désactive le support
"CROSS_WORDS". Valeurs possibles : UDM_CROSS_WORDS_ENABLED
et
UDM_CROSS_WORDS_DISABLED
.
La fonctionnalité "CROSS_WORDS" vous permet d'effectuer des
recherches dans les balises (entre <a href="xxx"> </a>),
pour utiliser le nom du lien. Ce mode fonctionne avec les bases de
données SQL et n'est pas supporté par les modes
intégrés ou le cache.
UDM_PARAM_VARDIR
- spécifie un chemin précis sur le
disque où l'indexeur enregistre les données lorsqu'il
utilise le cache et les bases de données internes. Par
défaut, le dossier /var
de l'installation
de mnoGoSearch est utilisé.
val
Version | Description |
---|---|
4.1.0 |
Ajout de la constante UDM_PARAM_VARDIR .
|
Cette fonction retourne TRUE
en cas de succès ou FALSE
si une erreur survient.
Note: CROSS_WORDS est supporté à partir de mnoGoSearch 3.1.11.
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
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
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)