

  unaccent est un dictionnaire de recherche plein texte
  qui supprime les
  accents d'un lexeme. C'est un dictionnaire de filtre, ce qui signifie que sa
  sortie est passée au prochain dictionnaire (s'il y en a un), contrairement
  au comportement normal des dictionnaires. Cela permet le traitement des
  accents pour la recherche plein texte.
 
  L'implémentation actuelle d'unaccent ne peut pas être
  utilisée comme un dictionnaire de normalisation pour un dictionnaire
  thesaurus.
 
   Le dictionnaire unaccent accepte les options
   suivantes :
  
     RULES est le nom de base du fichier contenant la liste
     des règles de traduction. Ce fichier doit être stocké dans le répertoire
     $SHAREDIR/tsearch_data/ ($SHAREDIR
     étant le répertoire des données partagées de
     PostgreSQL). Son nom doit se terminer avec
     l'extension .rules (qui ne doit pas être inclus dans
     le paramètre RULES).
    
Le fichier des règles a le format suivant :
Chaque ligne représente une règle de traduction, consistant en un caractère avec accent, suivi d'un caractère sans accent. Le premier est traduit avec le second. Par exemple :
À A Á A Â A Ã A Ä A Å A Æ AE
Les deux caractères doivent être séparés par des espaces blancs, et tout espace blanc au début et à la fin d'une ligne est ignoré.
Sinon, si seulement un caractère est donnée sur une ligne, les occurences de ce caractère sont supprimées. Ceci est utile dans les langues où les accents sont représentés par des caractères séparés.
     Actuellement, chaque caractère peut être une chaîne ne contenant pas
     d'espace blanc, pour que les dictionnaires unaccent
     puissent être utilisés pour d'autres types de substitutions de sous-
     chaînes au delà des suppressions de signes diacritiques.
    
Comme avec d'autres fichiers de configuration de la recherche plein texte avec PostgreSQL, le fichier de règles doit être stocké dans l'encodage UTF-8. Les données sont automatiquement traduites dans l'encodage courant de la base de données lors du chargement. Toute ligne contenant des caractères non traduisibles est ignorée silencieusement, de façon à ce que les fichiers de règles puissent contenir des règles qui ne sont pas applicables dans l'encodage courant.
   Un exemple plus complet, qui est directement utile pour les langages
   européens, se trouve dans unaccent.rules, qui est
   installé dans le répertoire $SHAREDIR/tsearch_data/
   une fois le module unaccent installé. Ce fichier
   de règles traduit les caractères avec accent vers le même caractère
   sans accent. Il étend aussi les ligatures en une série équivalente de
   caractères simples (par exemple, Æ devient AE).
  
   Installer l'extension unaccent crée
   un modèle de recherche de texte appelé unaccent et un
   dictionnaire basé sur ce modèle, appelé lui-aussi
   unaccent. Le dictionnaire unaccent a
   le paramètre par défaut RULES='unaccent', qui le rend
   directement utilisable avec le fichier standard
   unaccent.rules. Si vous le souhaitez, vous pouvez
   modifier le paramètre. Par exemple :
ma_base=# ALTER TEXT SEARCH DICTIONARY unaccent (RULES='mes_regles');
     Vous pouvez aussi créer des nouveaux dictionnaires basés sur le modèle.
Pour tester le dictionnaire, vous pouvez essayer la requête suivante :
ma_base=# select ts_lexize('unaccent','Hôtel');
 ts_lexize
-----------
 {Hotel}
(1 row)
     
     Voici un exemple montrant comment installer le dictionnaire
     unaccent dans une configuration de recherche plein
     texte :
     
ma_base=# CREATE TEXT SEARCH CONFIGURATION fr ( COPY = french );
ma_base=# ALTER TEXT SEARCH CONFIGURATION fr
        ALTER MAPPING FOR hword, hword_part, word
        WITH unaccent, french_stem;
ma_base=# select to_tsvector('fr','Hôtels de la Mer');
    to_tsvector
-------------------
 'hotel':1 'mer':4
(1 row)
ma_base=# select to_tsvector('fr','Hôtel de la Mer') @@ to_tsquery('fr','Hotels');
 ?column?
----------
 t
(1 row)
ma_base=# select ts_headline('fr','Hôtel de la Mer',to_tsquery('fr','Hotels'));
      ts_headline
------------------------
  <b>Hôtel</b>de la Mer
(1 row)
     
     La fonction unaccent() supprime les accents d'une
     chaîne de caractères donnée. Il utilise un dictionnaire de type
     unaccent mais il peut être utilisé en dehors du
     contexte normal de la recherche plein texte.
    
unaccent([dictionaryregdictionary, ]stringtext) returnstext
     Si l'argument dictionary est
     omis, le dictionnaire de recherche plein texte nommé
     unaccent et apparaissant dans le même schéma que la
     fonction unaccent() elle-même est utilisé
    
SELECT unaccent('unaccent','Hôtel');
SELECT unaccent('Hôtel');