2009-05-12 8 views
1

J'utilise Lucene search API dans une application Web. Quelle méthode de la classe IndexSearcher de Lucene est recommandé d'utiliser? Une méthode est-elle plus rapide que d'autres?Existe-t-il une méthode IndexSearcher recommandée?

1.IndexSearcher (répertoire répertoire) 2.IndexSearcher (IndexReader r) 3.IndexSearcher (chemin String)

Merci pour la lecture.

Répondre

3

Le constructeur qui accepte Directory et le chemin d'indexation interne utilisent le constructeur qui accède à IndexReader. Donc, il n'y a pas d'avantage de performance de l'un sur les autres. Gardez à l'esprit que si vous créez un chercheur avec IndexReader, vous devez fermer le lecteur explicitement après avoir fermé le chercheur.

0

Tout est une question de commodité.

Si vous voulez simplement créer un IndexSearcher, utilisez celui qui accepte un chemin. Si vous avez déjà un objet Directory, utilisez celui qui accepte un Directory.

Et si vous avez un IndexReader ... vous obtenez le point. N'oubliez pas que si vous avez fourni un IndexReader, vous devez le fermer vous-même après avoir fermé le IndexSearcher.

Je vous recommande vivement de prendre une copie du Lucene source code. C'est très lisible et peut répondre à beaucoup de ces questions.

+0

Pouvez-vous s'il vous plaît répondre à celui-ci? http://stackoverflow.com/questions/899542/problem-using-same-instance-of-indexsearcher-for-multiple-requests –

Questions connexes