Хранить индексный файл Lucene в удаленном месте - PullRequest
4 голосов
/ 10 января 2011

Привет
Есть ли способ сохранить файлы индекса lucene в удаленном месте, например, я на ПК (A) и хочу проиндексировать свои документы, но сохранить результат в удаленном месте, как какой-то каталог на ПК (B), если он поддерживается внутренне, или я должен написать собственный код для его поддержки?

большое спасибо за точный ответ

Ответы [ 2 ]

5 голосов
/ 10 января 2011

В зависимости от настроек сети доступно несколько параметров.

Вы можете работать непосредственно с удаленной файловой системой, опубликованной как сетевой ресурс с FSDirectory.Open(@"\\server\index"), но, как уже отмечалось, задержка и скорость сети будут влиять на индексирование.

Вы также можете индексировать его локально, используя FSDirectory или RAMDirectory, и позвонить Directory.Copy(src, dest, closeDirSrc), чтобы передать его через общий сетевой ресурс в ваше удаленное местоположение. Это будет быстрее, чем работа непосредственно с удаленным каталогом, поскольку при индексации не происходит перегрузок в сети.

Если скорость не имеет значения, или вы чувствуете себя авантюрным, попробуйте создать собственную реализацию каталога (унаследованную от Directory), которая использует любую необходимую вам технику передачи (ftp, email, почтовые голуби и т. Д.).

1 голос
/ 10 января 2011
  1. Я не уверен, как вы подключаетесь к «удаленному расположению», но если вы можете подключить ПК (B) как часть вашей файловой системы, вы можете поместить туда свой индекс, не делая ничего особенного.
  2. При этом удаленные файловые системы медленнее , чем локальные
...