Présentation

Lucene dispose d'un mécanisme de mise en cache interne qui rend les recherches effectuées à l'aide des objets IndexSearcher anciens plus rapides que les recherches effectuées avec les nouvelles instances IndexSearcher. Une instance partagée IndexSearcher serait suffisante pour obtenir des recherches rapides dans l'environnement mono-utilisateur, toutefois, dans la plupart des cas d'utilisation d'un environnement de serveur, plusieurs clients interrogent l'index simultanément. Pour éviter le séquencement requis par la recherche dans ce paramètre, ce qui diminuerait les performances de la recherche individuelle, GSS utilise un pool IndexSearcher qui conserve un nombre défini d'instances IndexSearcher qui peuvent être réutilisées par les demandes de recherche simultanées.

Une instance IndexSearcher voit uniquement l'index tel qu'il était au "point dans le temps" où il a été ouvert. Les mises à jour effectuées sur l'index après l'ouverture d'IndexSearcher n'apparaissent pas jusqu'à la réouverture d'IndexSearcher. Chaque instance IndexSearcher peut utiliser une quantité importante de mémoire en fonction de la taille de l'index et du fait que l'index a été mis à jour dans l'intervalle ou non. Le pool IndexSearcher s'occupe de fermer et de rouvrir les instances IndexSearcher lors d'une mise à jour de l'index.