Implementieren der Lucene .Net-Suche in der Azure-Webrolle

Ich verwende AzureDirectory und Lucene .NET 2.9.4, habe aber zwei Probleme:

Sucher scheint nicht so schnell zu sein. Ich indiziere mit diesen Einstellungen: indexWriter.SetUseCompoundFile (false); indexWriter.SetMergeFactor (1000); Der Index liegt bei 3,5 GB und hat 12.126.436 Dokumente. Das Erstellen des IndexSearcher dauert mindestens 5 Minuten, auch wenn sich der Index bereits auf der lokalen Festplatte befindet. Ist der Index zu groß? Ich habe versucht, mit MultiFieldQueryParser in zwei Feldern einen einzelnen Suchbegriff zu suchen. TermVector on fields ist deaktiviertÜberall wird empfohlen, nur eine Instanz von indexSearcher zu erstellen und diese für mehrere Abfragen freizugeben (tatsächlich ist die Erstellung langsam), aber ich weiß nicht, wie ich den Searcher-Singleton (es ist die Klasse, die die Suche durchführt) für verschiedene Websites freigeben soll Anfragen. Wenn ich das Singleton in der Webrollenklasse erstelle, wie kann ich dann diese Instanz verwenden, um die Suche durchzuführen? Zu diesem Zeitpunkt erstellt jede Webanforderung den Singleton neu.

Danke vielmals

Antworten auf die Frage(2)

Ihre Antwort auf die Frage