2011-01-10 5 views
5

Hallo
Gibt es eine Möglichkeit, Lucene-Indexdateien an einem entfernten Ort zu speichern, zum Beispiel bin ich auf dem PC (A) und möchte meine Dokumente indizieren, aber das Ergebnis an einem entfernten Ort speichern Verzeichnis auf PC (B) wird es intern unterstützt oder ich sollte benutzerdefinierten Code schreiben, um es zu unterstützen?Speichern Lucene-Indexdatei an entfernten Standort

viele dank genaue Antwort

Antwort

1
  1. Ich bin nicht sicher, wie Sie mit dem „entfernten Ort“ sich verbinden, aber wenn Sie PC (B) als Teil des Dateisystems montieren können, können Sie Ihre setzen Index dort ohne etwas Besonderes zu tun.
  2. aber sagen, dass Remote-Dateisysteme sind slower als auf lokaler Ebene
+0

Sie meinen, Erstellen von Mapping-Laufwerk für Remote-Verzeichnis? Wenn das Remote-Dateisystem keine gute Lösung ist, was würde ich tun, wenn ich mehrere Indexer auf verschiedenen Systemen und einen Sucher zur Suche habe – Ehsan

+0

@Ehsan: Mein Vorschlag wäre, Solr zu verwenden, anstatt zu versuchen, seine verteilten Suchfunktionen zu replizieren. Abgesehen davon haben Sie nicht viele Optionen. – Xodarap

6

Es gibt mehrere Optionen zur Verfügung, je nach Netzwerk-Setup.

Sie können direkt mit einem Remote-Dateisystem arbeiten, das als Netzwerkfreigaben mit FSDirectory.Open(@"\\server\index") veröffentlicht wurde, aber wie bereits erwähnt, wirken sich Netzwerklatenz und -geschwindigkeit auf Ihre Indizierung aus.

Sie könnten auch sie Index lokal, entweder unter Verwendung eines FSDirectory oder eine RAMDirectory, und rufen Sie Directory.Copy(src, dest, closeDirSrc) es über eine Netzwerkfreigabe an Ihren Remote-Standort zu übertragen. Dies ist schneller als die direkte Arbeit mit einem Remote-Verzeichnis, da während der Indizierung kein Netzwerk-Overhead entsteht.

Wenn die Geschwindigkeit keine Rolle spielt oder Sie sich abenteuerlustig fühlen, erstellen Sie eine benutzerdefinierte Verzeichnisimplementierung (erben von Directory), die die von Ihnen benötigte Übertragungstechnik (FTP, E-Mail, Brieftauben usw.) verwendet.