| 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-int"> |
|---|
| 8 |
<title>dict_int</title> |
|---|
| 9 |
|
|---|
| 10 |
<indexterm zone="dict-int"> |
|---|
| 11 |
<primary>dict_int</primary> |
|---|
| 12 |
</indexterm> |
|---|
| 13 |
|
|---|
| 14 |
<para> |
|---|
| 15 |
<filename>dict_int</filename> est un exemple de modèle de dictionnaire pour |
|---|
| 16 |
la recherche plein texte. La création de ce dictionnaire à été motivée par la |
|---|
| 17 |
volonté de pouvoir contrôler l'indexage d'entiers (signés et non signés), |
|---|
| 18 |
pour permettre à de tels nombres d'être indexés sans |
|---|
| 19 |
grossissement excessif du nombre de mots uniques, ce qui affecte |
|---|
| 20 |
grandement la performance de la recherche. |
|---|
| 21 |
</para> |
|---|
| 22 |
|
|---|
| 23 |
<sect2> |
|---|
| 24 |
<title>Configuration</title> |
|---|
| 25 |
<para> |
|---|
| 26 |
Le dictionnaire accepte deux options : |
|---|
| 27 |
</para> |
|---|
| 28 |
|
|---|
| 29 |
<itemizedlist> |
|---|
| 30 |
<listitem> |
|---|
| 31 |
<para> |
|---|
| 32 |
le paramètre <literal>maxlen</literal> indique le nombre maximum de |
|---|
| 33 |
chiffres autorisés dans un mot de type entier. La valeur par défaut |
|---|
| 34 |
est 6 ; |
|---|
| 35 |
</para> |
|---|
| 36 |
</listitem> |
|---|
| 37 |
<listitem> |
|---|
| 38 |
<!-- stop word : terme courant ??? --> |
|---|
| 39 |
<para> |
|---|
| 40 |
Le paramètre <literal>rejectlong</literal> précise si un entier trop |
|---|
| 41 |
long doit être tronqué ou ignoré. Si <literal>rejectlong</literal> vaut |
|---|
| 42 |
<literal>false</literal> (valeur par défaut), le dictionnaire renvoie |
|---|
| 43 |
les <literal>maxlen</literal> premiers chiffres de l'entier. Si |
|---|
| 44 |
<literal>rejectlong</literal> vaut <literal>true</literal>, le |
|---|
| 45 |
dictionnaire traite l'entier comme un terme courant, l'entier n'est |
|---|
| 46 |
donc pas indexé. Cela signifie aussi qu'un tel nombre ne peut |
|---|
| 47 |
pas être recherché. |
|---|
| 48 |
</para> |
|---|
| 49 |
</listitem> |
|---|
| 50 |
</itemizedlist> |
|---|
| 51 |
</sect2> |
|---|
| 52 |
|
|---|
| 53 |
<sect2> |
|---|
| 54 |
<title>Utilisation</title> |
|---|
| 55 |
|
|---|
| 56 |
<para> |
|---|
| 57 |
L'exécution du script d'installation crée un modèle de recherche plein |
|---|
| 58 |
texte <literal>intdict_template</literal> et un dictionnaire |
|---|
| 59 |
<literal>intdict</literal> basé sur ce dernier avec les paramètres par |
|---|
| 60 |
défaut. Les paramètres peuvent être modifiés, par exemple : |
|---|
| 61 |
|
|---|
| 62 |
<programlisting> |
|---|
| 63 |
mabase ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = 4, REJECTLONG = true); |
|---|
| 64 |
ALTER TEXT SEARCH DICTIONARY |
|---|
| 65 |
</programlisting> |
|---|
| 66 |
|
|---|
| 67 |
ou de nouveaux dictionnaires basés sur le modèle créés. |
|---|
| 68 |
</para> |
|---|
| 69 |
|
|---|
| 70 |
<para> |
|---|
| 71 |
Pour tester le dictionnaire : |
|---|
| 72 |
|
|---|
| 73 |
<programlisting> |
|---|
| 74 |
mydb# select ts_lexize('intdict', '12345678'); |
|---|
| 75 |
ts_lexize |
|---|
| 76 |
----------- |
|---|
| 77 |
{123456} |
|---|
| 78 |
</programlisting> |
|---|
| 79 |
|
|---|
| 80 |
mais une utilisation réelle nécessite de l'inclure dans une configuration |
|---|
| 81 |
de recherche plein texte comme celle décrite dans <xref |
|---|
| 82 |
linkend="textsearch"/>. Cela peut ressembler à ceci : |
|---|
| 83 |
|
|---|
| 84 |
<programlisting> |
|---|
| 85 |
ALTER TEXT SEARCH CONFIGURATION english |
|---|
| 86 |
ALTER MAPPING FOR int, uint WITH intdict; |
|---|
| 87 |
</programlisting> |
|---|
| 88 |
|
|---|
| 89 |
</para> |
|---|
| 90 |
</sect2> |
|---|
| 91 |
|
|---|
| 92 |
</sect1> |
|---|