13.3.2. Récupération des résultats
Après sa création, la requête Hibernate est exécutée de la même façon qu'une requête HQL ou Criteria. Le même paradigme et sémantique d'objet s'applique à une requête Lucene Query et les opérations courantes telles que
list(), uniqueResult(), iterate() et scroll() sont disponibles.
13.3.2.1. Performance Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Si vous attendez un nombre important de résultats (par exemple à l'aide de la pagination) et souhaitez travailler avec chacun d'entre eux,
list() ou uniqueResult() sont recommandés. list() fonctionne mieux si l'entité batch-size est configurée correctement. Veuillez noter que Hibernate Search doit traiter tous les éléments Lucene Hits (dans la pagination) lors de l'utilisation de list(), uniqueResult() et iterate().
Si vous souhaitez minimiser le chargement de document Lucene, veuillez privilégier la méthode
scroll(). Veillez à fermer l'objet ScrollableResults lorsque vous aurez terminé, puisqu'il garde les ressources Lucene. Si vous comptez utiliser la méthode scroll, mais souhaitez charger des objets en lot, vous pouvez utiliser query.setFetchSize(). Lorsqu'on accède à un objet mais qu'il n'est pas encore chargé, Hibernate Search charge les objets qui suivent fetchSize en une seule fois.
Important
La pagination est préférable au défilement à outrance.