2011-01-10 3 views
5

Ciao
C'è un modo per archiviare i file dell'indice di lucene in una posizione remota, ad esempio sono su PC (A) e desidero indicizzare i miei documenti ma archiviare il risultato in una posizione remota come alcuni la directory su PC (B) è supportata internamente o dovrei scrivere un codice personalizzato per supportarlo?Memorizza il file indice Lucene nella posizione remota

molte grazie a risposta precisa

risposta

1
  1. io non sono sicuro di come ci si collega alla "posizione remota", ma se è possibile montare PC (B) come parte del vostro file system si può mettere la vostra indicizza lì senza fare niente di speciale.
  2. Detto questo, file system remoti sono slower di quelli locali
+0

significa la creazione di un'unità di mapping per la directory remota? se il file system remoto non è una buona soluzione cosa farei se avessi un indicizzatore multiplo su sistemi diversi e un ricercatore per alimentare la richiesta di ricerca – Ehsan

+0

@Ehsan: Il mio suggerimento sarebbe di usare Solr piuttosto che provare a replicare la sua funzionalità di ricerca distribuita. A parte questo, non hai molte opzioni. – Xodarap

6

Ci sono diverse opzioni disponibili, a seconda della configurazione della rete.

È possibile lavorare direttamente su un filesystem remoto pubblicato come condivisioni di rete con FSDirectory.Open(@"\\server\index"), ma come già notato, la latenza della rete e la velocità influiranno sull'indicizzazione.

Si potrebbe anche indice a livello locale, sia utilizzando un FSDirectory o un RAMDirectory, e chiamare Directory.Copy(src, dest, closeDirSrc) di trasferirlo tramite una condivisione di rete per la vostra postazione remota. Questo sarà più veloce di lavorare direttamente contro una directory remota poiché non c'è overhead di rete durante l'indicizzazione.

Se la velocità non interessa o ti senti avventuroso, prova a creare un'implementazione di directory personalizzata (ereditata da Directory) che utilizza qualsiasi tecnica di trasferimento necessaria (ftp, email, piccioni viaggiatori, ecc.).