(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)
udm_load_ispell_data — Charge les données ispell
$agent
   , int $var
   , string $val1
   , string $val2
   , int $flag
   )udm_load_ispell_data() charge 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.
  
agentUn lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().
varParamètre indiquant la source des données ispell. Peut prendre une des valeurs suivantes :
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 être égal à 1.
         
         Note:
flagindique 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. Étant 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 retourneraFALSEet le code d'erreur, avec son message, seront accessibles avec udm_error() et udm_errno().
          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 pour la
          constante UDM_ISPELL_TYPE_DB.
         
Exemple #1 Exemple avec udm_load_ispell_data()
<?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:
flagprend 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.
         
<?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:
flagprend 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é.
         
Exemple :Note:
Cette fonction est disponible à partir de mnoGoSearch 3.1.12.
<?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;
}
?>
       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.
      
val1
val2
flag
   Cette fonction retourne TRUE en cas de
succès ou FALSE si une erreur survient.
  
Exemple #2 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;
}
?>