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
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.