如何解决如何在Lucene中使用Exodus Directory?
我有这个简单的Lucene代码:
Directory dir = FSDirectory.open(Paths.get("C:/temp/Lucene"));
Analyzer analyzer = new StandardAnalyzer();
IndexWriterConfig iwc = new IndexWriterConfig(analyzer);
iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
writer = new IndexWriter(dir,iwc);
如何在Java中使用 Exodus Directory 而不是FSDirectory
?
解决方法
ExodusDirectory
应该在ContextualEnvironment
的顶部使用:
ContextualEnvironment env = Environments.newContextualInstance(..);
ExodusDirectory dir = new ExodusDirectory(env,VfsConfig.DEFAULT,StoreConfig.WITHOUT_DUPLICATES_WITH_PREFIXING,new ExodusDirectoryConfig());
Analyzer analyzer = new StandardAnalyzer();
IndexWriterConfig iwc = new IndexWriterConfig(analyzer);
iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
writer = env.computeInTransaction(txn -> {
try {
return new IndexWriter(dir,iwc);
} catch (IOException e) {
return null;
}
});
可以调整ExodusDirectory的配置参数,但最好使用StoreConfig.WITHOUT_DUPLICATES_WITH_PREFIXING
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。