1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- EN-Revision: 19777 -->
4 <sect1 id="learning.lucene.pagination">
5 <title>Pagination de résultat de recherche</title>
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é.
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
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);
28 foreach ($hits as $hit) {
29 $resultSetEntry = array();
30 $resultSetEntry['id'] = $hit->id;
31 $resultSetEntry['score'] = $hit->score;
32 $resultSet[] = $resultSetEntry;
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']),