[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / tutorials / lucene-pagination.xml
blobb3dd89bbbc67660d317247c03607dc8528805448
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- EN-Revision: 19777 -->
3 <!-- Reviewed: no -->
4 <sect1 id="learning.lucene.pagination">
5     <title>Pagination de résultat de recherche</title>
7     <para>
8         Comme <link linkend="learning.lucene.searching.identifiers">mentionné plus haut</link>,
9         les objets de résultats de recherche utilisent le lazy loading pour les champs de documents
10         stockés. Lorsque l'on accède à l'un des champs stockés, le document complet est chargé.
11     </para>
13     <para>
14         Ne récupérez pas tous les documents si vous avez seulement besoin de travailler sur une
15         partie. Parcourez les résultats de recherche et stockez l'ID du document (et éventuellement
16         son score) afin de récupérer les documents depuis l'index pendant la prochaine exécution
17         du script.
18     </para>
20     <example id="learning.lucene.pagination.example">
21         <title>Exemple de pagination de résultat de recherche</title>
23         <programlisting language="php"><![CDATA[
24 $cacheId = md5($query);
25 if (!$resultSet = $cache->load($cacheId)) {
26     $hits = $index->find($query);
27     $resultSet = array();
28     foreach ($hits as $hit) {
29         $resultSetEntry          = array();
30         $resultSetEntry['id']    = $hit->id;
31         $resultSetEntry['score'] = $hit->score;
32         $resultSet[] = $resultSetEntry;
33     }
34     $cache->save($resultSet, $cacheId);
36 $publishedResultSet = array();
37 for ($resultId = $startId; $resultId < $endId; $resultId++) {
38     $publishedResultSet[$resultId] = array(
39         'id'    => $resultSet[$resultId]['id'],
40         'score' => $resultSet[$resultId]['score'],
41         'doc'   => $index->getDocument($resultSet[$resultId]['id']),
42     );
44 ]]></programlisting>
45     </example>
46 </sect1>