[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / tutorials / lucene-searching.xml
blob52ed183d08069c2661a394c159db13c415e24eb3
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- EN-Revision: 19807 -->
3 <!-- Reviewed: no -->
4 <sect1 id="learning.lucene.searching">
5     <title>Recherche</title>
7     <para>
8         La recherche s'effectue en utilisant la méthode <methodname>find()</methodname>&#160;:
9     </para>
11     <example id="learning.lucene.searching.search-example">
12         <title>Recherche à travers l'index</title>
14         <programlisting language="php"><![CDATA[
15 $hits = $index->find($query);
16 foreach ($hits as $hit) {
17     printf("%d %f %s\n", $hit->id, $hit->score, $hit->title);
19 ]]></programlisting>
20     </example>
22     <para>
23         Cet exemple montre l'utilisation de deux propriétés particulières des résultats de
24         recherche&#160;-&#160;<property>id</property> et <property>score</property>.
25     </para>
27     <para>
28         <property>id</property> est un identifiant interne de document utilisé dans un index Lucene.
29         Il peut être utilisé pour un certains nombre d'opérations, tels que la suppression d'un
30         document de l'index&#160;:
31     </para>
33     <example id="learning.lucene.searching.delete-example">
34         <title>Suppression d'un document indexé</title>
36         <programlisting language="php"><![CDATA[
37 $index->delete($id);
38 ]]></programlisting>
39     </example>
41     <para>
42         Ou récupération d'un document à partir de l'index&#160;:
43     </para>
45     <example id="learning.lucene.searching.retrieve-example">
46         <title>Récupération d'un document indexé</title>
48         <programlisting language="php"><![CDATA[
49 $doc = $index->getDocument($id);
50 ]]></programlisting>
51     </example>
53     <note id="learning.lucene.searching.identifiers">
54         <title>Identifiant interne de document</title>
56         <para>
57             Note importante&#160;! Les identifiants de documents internes peuvent changer suite à
58             une optimisation de l'index ou au processus d'auto-optimisation, mais il ne sera jamais
59             changé pendant l'exécution d'un script à moins que ne soient appellées les méthodes
60             <methodname>addDocument()</methodname> (ce qui peut impliquer une procédure
61             d'auto-optimisation) ou <methodname>optimize()</methodname>.
62         </para>
63     </note>
65     <para>
66         Le champ <property>score</property> est un score de résultat. Les résultats de recherche
67         sont triés par score (meilleurs résultats en premier).
68     </para>
70     <para>
71         Il est aussi possible de trier l'ensemble de résultats en fonction d'une valeur de champ
72         spécifique. Voir la <link
73             linkend="zend.search.lucene.searching.sorting"> documentation
74             <classname>Zend_Search_Lucene</classname></link> pour plus de détails sur cette
75         possibilité.
76     </para>
78     <para>
79         Cette exemple montre aussi la possibilité d'accéder à des champs stockés (ex&#160;:
80         <command>$hit->title</command>). Les champs de documents stockés sont chargés lors du
81         premier accès à l'une des propriété du résultat autre que
82         <property>id</property> ou <property>score</property>, et la valeur du champ correspondant
83         est retournée.
84     </para>
86     <para>
87         Ceci cause une ambiguïté car les documents ont leurs propres champs <property>id</property>
88         ou <property>score</property> par conséquence, il n'est pas recommendé d'utiliser ces noms
89         de champs dans les documents stockés. Cependant, ils peuvent être accédé via la
90         méthode&#160;: <methodname>getDocument()</methodname>
91     </para>
93     <example id="learning.lucene.searching.id-score-fields">
94         <title>Accéder aux champs "id" et "score" original du documents</title>
96         <programlisting language="php"><![CDATA[
97 $id    = $hit->getDocument()->id;
98 $score = $hit->getDocument()->score;
99 ]]></programlisting>
100     </example>
101 </sect1>