阻止Lucene自动创建索引目录



我一直在阅读一次创建的索引,使用:

IndexReader reader = DirectoryReader.open(index);

其中index是

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

FSDirectory.open()尝试创建目录,但生产环境是只读的。是否可以在只读模式下获取索引目录?

代码失败的原因是默认情况下FSLockFactory用于获取索引上的锁以防止损坏。为了获得锁,它会创建锁文件。显然,在您的情况下,这是不可能的,因此您需要使用另一个实现-NoLockFactory

Directory index = FSDirectory.open(Paths.get("/tmp/test"), NoLockFactory.INSTANCE);

最新更新