2009-05-12 15 views
1

Ich verwende Lucene Such-API in einer webbasierten Anwendung. Welche Methode der IndexSearcher-Klasse von Lucene wird empfohlen? Ist eine Methode schneller als die andere?Gibt es eine empfohlene IndexSearcher-Methode?

1.IndexSearcher (Directory-Verzeichnis) 2.IndexSearcher (IndexReader r) 3.IndexSearcher (String path)

Danke fürs Lesen.

Antwort

3

Der Konstruktor, der Directory und den Pfad zum Index intern akzeptiert, verwendet den Konstruktor, der den IndexReader verwendet. Es gibt also keinen Leistungsvorteil gegenüber anderen. Beachten Sie, dass Sie den Reader explizit schließen müssen, nachdem Sie den Sucher geschlossen haben, wenn Sie einen Sucher mit IndexReader erstellen.

0

Es geht um Komfort.

Wenn Sie nur eine IndexSearcher erstellen möchten, verwenden Sie die, die einen Pfad akzeptiert.

Wenn Sie bereits ein Objekt Directory haben, verwenden Sie das, das eine Directory akzeptiert.

Und wenn Sie eine IndexReader haben ... Sie bekommen den Punkt. Denken Sie daran, wenn Sie eine IndexReader angegeben haben, wird erwartet, dass Sie sie selbst schließen, nachdem Sie die IndexSearcher geschlossen haben.

Ich empfehle dringend, eine Kopie der Lucene source code zu greifen. Es ist sehr lesenswert und kann viele dieser Fragen beantworten.

+0

Können Sie diese bitte beantworten? http://stackoverflow.com/questions/899542/problem-verwenden-same-instance-of-indexsearcher-for-multiple-requests –

Verwandte Themen