Seitendarstellung von Suchergebnissen
Wie vorher erwähnt, verwenden
die Hit Objekte von Suchergebnissen Lazy Loading für gespeicherte Dokumentfelder. Wenn auf
ein gespeichertes Feld zugegriffen wird, wird das komplette Dokument geladen.
Man sollte nicht alle Dokumente empfangen wenn man nur mit einem Teil von Ihnen arbeiten
muss. Man sollte durch die Suchergebnisse gehen und die IDs der Dokumente irgendwo speichern
(und optional die Bewertung) um die Dokumente vom Index bei der nächsten Ausführung des
Skripts zu erhalten.
Beispiel für die seitendarstellung von Suchergebnissenload($cacheId)) {
$hits = $index->find($query);
$resultSet = array();
foreach ($hits as $hit) {
$resultSetEntry = array();
$resultSetEntry['id'] = $hit->id;
$resultSetEntry['score'] = $hit->score;
$resultSet[] = $resultSetEntry;
}
$cache->save($resultSet, $cacheId);
}
$publishedResultSet = array();
for ($resultId = $startId; $resultId < $endId; $resultId++) {
$publishedResultSet[$resultId] = array(
'id' => $resultSet[$resultId]['id'],
'score' => $resultSet[$resultId]['score'],
'doc' => $index->getDocument($resultSet[$resultId]['id']),
);
}
]]>