| 1 |
<?xml version="1.0" encoding="ISO-8859-15"?> |
|---|
| 2 |
<!-- Dernière modification |
|---|
| 3 |
le $Date$ |
|---|
| 4 |
par $Author$ |
|---|
| 5 |
révision $Revision$ --> |
|---|
| 6 |
|
|---|
| 7 |
<sect1 id="dict-xsyn"> |
|---|
| 8 |
<title>dict_xsyn</title> |
|---|
| 9 |
|
|---|
| 10 |
<indexterm zone="dict-xsyn"> |
|---|
| 11 |
<primary>dict_xsyn</primary> |
|---|
| 12 |
</indexterm> |
|---|
| 13 |
|
|---|
| 14 |
<para> |
|---|
| 15 |
Le module <filename>dict_xsyn</filename> (<foreignphrase>Extended Synonym |
|---|
| 16 |
Dictionary</foreignphrase>, dictionnaire étendu de |
|---|
| 17 |
synonymes) est un exemple de modèle de dictionnaire pour la recherche |
|---|
| 18 |
plein texte. Ce type de dictionnaire remplace des mots avec un ensemble |
|---|
| 19 |
de synonymes, ce qui rend possible la recherche d'un mot en utilisant |
|---|
| 20 |
un de ses synonymes. |
|---|
| 21 |
</para> |
|---|
| 22 |
|
|---|
| 23 |
<sect2> |
|---|
| 24 |
<title>Configuration</title> |
|---|
| 25 |
<para> |
|---|
| 26 |
Un dictionnaire <literal>dict_xsyn</literal> accepte les options |
|---|
| 27 |
suivantes : |
|---|
| 28 |
</para> |
|---|
| 29 |
<itemizedlist> |
|---|
| 30 |
<listitem> |
|---|
| 31 |
<para> |
|---|
| 32 |
<literal>keeporig</literal> indique si le mot original est inclus dans la |
|---|
| 33 |
recherche (si <literal>true</literal>, valeur par défaut), ou seulement |
|---|
| 34 |
ses synonymes (si <literal>false</literal>) ; |
|---|
| 35 |
</para> |
|---|
| 36 |
</listitem> |
|---|
| 37 |
<listitem> |
|---|
| 38 |
<para> |
|---|
| 39 |
<literal>rules</literal> est le nom du fichier contenant la liste |
|---|
| 40 |
des synonymes. Ce fichier doit être stocké dans |
|---|
| 41 |
<filename>$SHAREDIR/tsearch_data/</filename> |
|---|
| 42 |
(où <literal>$SHAREDIR</literal> est le répertoire des données partagées de |
|---|
| 43 |
la distribution <productname>PostgreSQL</productname>). |
|---|
| 44 |
Son nom doit se terminer par <literal>.rules</literal> (cette extension |
|---|
| 45 |
n'est pas à inclure dans le paramètre <literal>rules</literal>). |
|---|
| 46 |
</para> |
|---|
| 47 |
</listitem> |
|---|
| 48 |
</itemizedlist> |
|---|
| 49 |
<para> |
|---|
| 50 |
Le fichier rules a le format suivant : |
|---|
| 51 |
</para> |
|---|
| 52 |
<itemizedlist> |
|---|
| 53 |
<listitem> |
|---|
| 54 |
<para> |
|---|
| 55 |
chaque ligne représente un groupe de synonymes pour un mot simple, |
|---|
| 56 |
donné en premier sur la ligne. Les synonymes sont séparés par |
|---|
| 57 |
une espace : |
|---|
| 58 |
</para> |
|---|
| 59 |
<programlisting> |
|---|
| 60 |
mot syn1 syn2 syn3 |
|---|
| 61 |
</programlisting> |
|---|
| 62 |
</listitem> |
|---|
| 63 |
<listitem> |
|---|
| 64 |
<para> |
|---|
| 65 |
le signe dièse (<literal>#</literal>) est un délimiteur de commentaires. Il peut |
|---|
| 66 |
apparaître dans la ligne. Le reste de la ligne est ignoré. |
|---|
| 67 |
</para> |
|---|
| 68 |
</listitem> |
|---|
| 69 |
</itemizedlist> |
|---|
| 70 |
|
|---|
| 71 |
<para> |
|---|
| 72 |
Un exemple est donné dans <filename>xsyn_sample.rules</filename> qui est installé dans |
|---|
| 73 |
<filename>$SHAREDIR/tsearch_data/</filename>. |
|---|
| 74 |
</para> |
|---|
| 75 |
</sect2> |
|---|
| 76 |
|
|---|
| 77 |
<sect2> |
|---|
| 78 |
<title>Utilisation</title> |
|---|
| 79 |
|
|---|
| 80 |
<para> |
|---|
| 81 |
L'exécution du script d'installation crée un modèle |
|---|
| 82 |
<literal>xsyn_template</literal> de recherche plein texte et un dictionnaire |
|---|
| 83 |
<literal>xsyn</literal> basé sur le modèle, avec des paramètres par défaut. |
|---|
| 84 |
Il est possible de modifier les paramètres, par exemple : |
|---|
| 85 |
|
|---|
| 86 |
<programlisting> |
|---|
| 87 |
mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false); |
|---|
| 88 |
ALTER TEXT SEARCH DICTIONARY |
|---|
| 89 |
</programlisting> |
|---|
| 90 |
|
|---|
| 91 |
ou de créer de nouveaux dictionnaires basés sur le modèle. |
|---|
| 92 |
</para> |
|---|
| 93 |
|
|---|
| 94 |
<para> |
|---|
| 95 |
Pour tester le dictionnaire : |
|---|
| 96 |
|
|---|
| 97 |
<programlisting> |
|---|
| 98 |
mydb=# SELECT ts_lexize('xsyn', 'word'); |
|---|
| 99 |
ts_lexize |
|---|
| 100 |
----------------------- |
|---|
| 101 |
{word,syn1,syn2,syn3} |
|---|
| 102 |
</programlisting> |
|---|
| 103 |
|
|---|
| 104 |
mais une utilisation réelle implique son ajout dans une configuration de |
|---|
| 105 |
recherche plein texte comme décrit dans <xref linkend="textsearch"/>. Cela |
|---|
| 106 |
pourrait ressembler à ceci : |
|---|
| 107 |
|
|---|
| 108 |
<programlisting> |
|---|
| 109 |
ALTER TEXT SEARCH CONFIGURATION english |
|---|
| 110 |
ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem; |
|---|
| 111 |
</programlisting> |
|---|
| 112 |
|
|---|
| 113 |
</para> |
|---|
| 114 |
</sect2> |
|---|
| 115 |
|
|---|
| 116 |
</sect1> |
|---|