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?

24
demandé sur mmcdole 2009-03-21 03:15:24

6 réponses

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.
12
répondu Shashikant Kore 2009-03-21 06:44:54

Cheat. Utilisez RAMDirectory pour charger la totalité de l'index dans la mémoire vive. Par la suite, tout est ultra-rapide. :)

4
répondu Emil H 2009-03-21 00:56:54

Beaucoup de liens morts ici.

ces ressources (quelque peu officielles) sont là où je commencerais:

http://wiki.apache.org/lucene-java/ImproveIndexingSpeed

http://wiki.apache.org/lucene-java/ImproveSearchingSpeed

4
répondu Marcus 2010-12-22 10:16:56

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.

3
répondu Nathan Voxland 2009-03-21 05:03:40

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.

1
répondu Shailendra 2015-10-28 19:44:35