gpt4 book ai didi

java - Apache 卢森 : How to save an index into a file?

转载 作者:搜寻专家 更新时间:2023-11-01 03:03:19 24 4
gpt4 key购买 nike

我正在开发一个在大型静态 数据存储库中启用索引搜索的应用程序。这不是服务器-客户端应用程序,其中服务器始终处于运行状态,而是每次按需启动的 native 应用程序

我想对存储库中的文件进行一次索引,并将我的工作保存到一个文件中。然后,我希望我的应用程序的每个用户都能够从保存的文件中加载已创建的索引。

我在《5分钟Lucene》中看到了如下创建索引的基本代码:

StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_40);
Directory index = new RAMDirectory();

IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_40, analyzer);

IndexWriter w = new IndexWriter(index, config);
addDoc(w, "Lucene in Action", "193398817");
addDoc(w, "Lucene for Dummies", "55320055Z");
addDoc(w, "Managing Gigabytes", "55063554A");
addDoc(w, "The Art of Computer Science", "9900333X");
w.close();


private static void addDoc(IndexWriter w, String title, String isbn) throws IOException {
Document doc = new Document();
doc.add(new TextField("title", title, Field.Store.YES));
doc.add(new StringField("isbn", isbn, Field.Store.YES));
w.addDocument(doc);
}
  • 现在如何将变量analyzer、indexconfig 保存到文件中?
  • 我以后如何从保存的文件中加载它们,并将它们用于查询?

最佳答案

我有一个解决方案 - 我会在这里与您分享:

应该采取整个更改,而不是使用 RAMDirectory 索引,只需使用 FSDirectory

例子:

FSDirectory index = FSDirectory.open(Paths.get("C:\\temp\\index.lucene"));

在上面的例子中,将创建目录C:\temp\index.lucene,并将索引写入其中。

现在我可以按照“5 分钟了解 Lucene”中所示的步骤查询索引: http://www.lucenetutorial.com/lucene-in-5-minutes.html

所以,如果我想在另一个应用程序中运行查询,我应该以同样的方式打开索引,我可以立即在其上运行查询...不需要再次索引文档...

关于java - Apache 卢森 : How to save an index into a file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30973986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com