6.23 mnoGoSearch
6 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . udm_add_search_limit . udm_alloc_agent_array . udm_alloc_agent . udm_api_version . udm_cat_list . udm_cat_path . udm_check_charset . udm_check_stored . udm_clear_search_limits . udm_close_stored . udm_crc32 . udm_errno . udm_error . udm_find . udm_free_agent . udm_free_ispell_data . udm_free_res . udm_get_doc_count . udm_get_res_field . udm_get_res_param . udm_hash32 ->udm_load_ispell_data . udm_open_stored . udm_set_agent_param
|
6.23.28 udm_load_ispell_data()Charge les données ispell[ Exemples avec udm_load_ispell_data ] PHP 4 >= 4.0.5, PHP 5 <= 5.0.4
bool
udm_load_ispell_data (
resource
agent
,
int
var
,
string
val1
,
string
val2
,
int
flag
)
udm_load_ispell_data
charge des données ispell.
Cette fonction retourne
TRUE
en cas de
succès,
FALSE
en cas d'échec.
agent
- Agent mnoGoSearch obtenu après un appel à
udm_alloc_agent
.
var
- Paramètre indiquant la source des données ispell.
Après avoir utilisé cette fonction, pensez à libérer les données de la
mémoire avec
udm_free_ispell_data
, même si vous
utilisez le mode
UDM_ISPELL_TYPE_SERVER
.
Le mode le plus rapide est
UDM_ISPELL_TYPE_SERVER
.
UDM_ISPELL_TYPE_TEXT
est
plus lent, et
UDM_ISPELL_TYPE_DB
est le plus lent. Ce classement est vrai
pour mnoGoSearch 3.1.10 - 3.1.11. Il est prévu d'accélérer le mode DB dans les
versions futures, et cela sera plus rapide que le mode TEXT.
-
UDM_ISPELL_TYPE_DB
indique que les données ispell doivent
être chargées depuis la base SQL. Dans ce cas, les
paramètres
val1
et
val2
sont ignorés et doivent être
laissés vides.
flag
doit valoir
1
.
Note |
flag
indique qu'après le chargement des données ispell
à partir de la source, elles doivent être triées (c'est nécessaire au bon
fonctionnement d'ispell). Dans le cas où vous chargez les données depuis un fichier,
il peut y avoir plusieurs appels à
udm_load_ispell_data
,
et il ne vaut pas la peine de trier les valeurs après chaque appel, mais uniquement
à la fin. Etant donné qu'en mode DB, toutes les données sont chargées en une seule
fois, ce paramètre doit avoir la valeur de
1
. Dans ce mode, en
cas d'erreur, par exemple si la table ispell est absente, la fonction retournera
FALSE
et le code d'erreur, avec son message, seront accessibles avec
udm_error
et
udm_errno
.
|
Exemple avec udm_load_ispell_data |
<?php if (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_DB,'','',1)) { printf("Erreur #%d: '%s'\n", udm_errno($udm), udm_error($udm)); exit; } ?>
|
-
UDM_ISPELL_TYPE_AFFIX
indique que les données ispell doivent être chargées
depuis un fichier et initie le chargement. Dans ce cas,
val1
définit le code de langue en deux lettres, et
val2
est le chemin
jusqu'aux fichiers. Notez que si vous utilisez un chemin relatif, le module recherche
les fichiers non pas dans
UDM_CONF_DIR
, mais directement avec le chemin courant,
où le script est exécuté. En cas d'erreur avec ce mode, si le fichier est absent,
la fonction retourne
FALSE
, et un message d'erreur sera affiché.
Les messages d'erreur ne sont pas accessibles avec
udm_error
et
udm_errno
, puisque ces fonctions ne traitent que les messages
SQL. Reportez-vous à la description du paramètre
flag
.
Exemple avec udm_load_ispell_data et UDM_ISPELL_TYPE_AFFIX |
<?php if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) || (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) || (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) || (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) { exit; } ?>
|
Note |
flag
prend la valeur
1
si c'est le dernier
appel à cette fonction.
|
-
UDM_ISPELL_TYPE_SPELL
indique que les données ispell
doivent être chargées depuis un fichier, et initie le chargement du dictionnaire. Dans ce cas,
val1
définit le code langue sur deux lettres, et
val2
le chemin du fichier. Notez que si vous utilisez
un chemin relatif, le module recherche les fichiers non pas dans
UDM_CONF_DIR
,
mais directement avec le chemin courant, où le script est exécuté. En cas d'erreur
avec ce mode, si le fichier est absent, la fonction retourne
FALSE
,
et un message d'erreur sera affiché. Les messages d'erreur ne sont pas accessibles avec
udm_error
et
udm_errno
, puisque ces
fonctions ne traitent que les messages SQL. Reportez-vous à la description du paramètre
flag
dans UDM_ISPELL_TYPE_DB.
Exemple avec udm_load_ispell_data et UDM_ISPELL_TYPE_SPELL |
<?php if ((! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) || (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) || (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) || (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) { exit; } ?>
|
Note |
flag
prend la valeur
1
si c'est le dernier
appel à cette fonction.
|
-
UDM_ISPELL_TYPE_SERVER
active le support des serveurs ispell.
val1
indique alors l'adresse de l'hôte qui supporte le serveur ispall.
val2
n'est pas encore utilisé, mais dans les cas futurs, il indiquera le numéro de port
utilisé par le serveur ispell.
flag
n'est pas utile, car les
données sont déjà triées.
Les serveurs Spelld lisent les données d'orthographe dans une
configuration séparée (par défaut
/usr/local/mnogosearch/etc/spelld.conf
),
les trie et les stocke en mémoire. Avec les clients, le serveur communique
de deux façons : vers les indexeurs, tout le contenu de la mémoire
est transféré pour que l'indexeur travaille plus vite ; vers le
moteur de recherche, il reçoit les mots à normaliser et les rend
au client corrigés. Cela permet une plus grande rapidité d'exécution,
en comparaison des modes db et text (notamment, les tris et les
chargements sont beaucoup plus rapides).
udm_load_ispell_data
en mode
UDM_ISPELL_TYPE_SERVER
ne charge pas vraiment les données ispell, mais définit simplement l'adresse
du serveur. En fait, le serveur sera automatiquement utilisé par
udm_find
lors des recherches. En cas d'erreur,
(par exemple si le serveur ispell ne fonctionne pas ou que l'hôte indiqué
est invalide), la conversion sera annulée, mais aucun message d'erreur ne
sera affiché.
Note |
Cette fonction est disponible à partir de mnoGoSearch 3.1.12.
|
Exemple avec udm_load_ispell_data et UDM_ISPELL_TYPE_SERVER |
<?php if (!udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) { echo "Erreur au chargement de la bibliothèque ispell sur le serveur<br />\n"; exit; } ?>
|
|