Optimiser les performances de Lucene
quelles sont les différentes façons d'optimiser les performances de Lucene?
dois-je utiliser l'API de mise en cache pour stocker ma requête de recherche lucene afin d'économiser sur le plafond de la construction de la requête à nouveau?
6 réponses
avez - vous regardé
Optimisation De Lucene Conseil: Recherche De Réutilisation
Avancé Indexation de Texte intégral avec Lucene
un indice doit-il être optimisé après des indices incrémentiels en Lucene?
conseils Rapides:
- gardez la taille de l'indice petite. Éliminer les normes, les vecteurs de terme quand ce n'est pas nécessaire. Mettez le drapeau de magasin pour un champ seulement si c'est un must.
- erreur évidente, mais souvent répétée. Créer une seule instance de Searcher et réutiliser.
- garder dans l'index sur les disques rapides. RAM, si vous êtes paranoïaque.
Cheat. Utilisez RAMDirectory pour charger la totalité de l'index dans la mémoire vive. Par la suite, tout est ultra-rapide. :)
Beaucoup de liens morts ici.
ces ressources (quelque peu officielles) sont là où je commencerais:
j'ai trouvé que la meilleure réponse à une question de la performance est de profil. Les lignes directrices sont excellentes, mais il y a tellement de variables qui peuvent avoir un impact sur les performances telles que la taille de votre ensemble de données, les types de requêtes que vous faites, les types de données, etc.
Get Netbeans profiler ou quelque chose de similaire et essayer différentes façons. Utiliser les articles liés par Mitch, mais assurez-vous de tester ce qui aide et ce qui (souvent étonnamment) fait mal.
il y a aussi de fortes chances que les différences de performance que vous pouvez obtenir de Lucene soient mineures par rapport aux améliorations de performance dans votre code . Le profileur le signalera également.
pour les machines 64 bits utiliser MMapDirectory au lieu de RAMDirectory comme très bien expliqué ici par l'un des committeurs principaux de Lucene.