Запретить Lucene автоматически создавать каталог индекса - PullRequest
0 голосов
/ 15 ноября 2018

Я читаю одноразовый индекс с:

    IndexReader reader = DirectoryReader.open(index);

где индекс

    Directory index = FSDirectory.open(Paths.get("src" + File.separator + "main" + File.separator + "resources" + File.separator + "luceneIndex"));

FSDirectory.open() пытается создать каталоги, но производственная среда доступна только для чтения. Можно ли получить указатель каталога в режиме только для чтения?

1 Ответ

0 голосов
/ 18 декабря 2018

Причиной сбоя вашего кода является то, что по умолчанию FSLockFactory используется для получения блокировки индекса для предотвращения повреждения. Для получения блокировки он создает файл блокировки. Очевидно, что в вашем случае это невозможно, поэтому вам нужно использовать другую реализацию - NoLockFactory .

Directory index = FSDirectory.open(Paths.get("/tmp/test"), NoLockFactory.INSTANCE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...