【问题标题】:Ho to build a Lucene index in src/main/resources?如何在 src/main/resources 中建立 Lucene 索引?
【发布时间】:2019-01-08 19:48:18
【问题描述】:

我正在编写一个 java 程序,我必须在其中使用 Lucene 构建一个索引,然后从中读取。最终,我构建了一个包含所有依赖项的 jar,因为我必须从 shell 的另一个程序中调用它。

我正在使用 Lucene 的 FSDirectory。 Lucene 的 FSDirectory 对读写索引很有用。但是,它的构造函数将路径作为输入。 This是FSDirectory的java doc。

当我通常从资源中读取文件时,我使用以下方法:

InputStream is = ResourceReader.class.getClassLoader().getResourceAsStream("filename.extension");

但是,正如我上面所说,FSDirectory 的构造函数需要一个路径。但是如何给它一个路径,考虑到我要生产一个罐子?

【问题讨论】:

    标签: java indexing lucene resources


    【解决方案1】:

    我在我的一个项目中遇到了同样的问题,这解决了我的问题:

    FSDirectory luceneIndex = new SimpleFSDirectory(Paths.get("where_you_want_to_store_the_index"));
    

    【讨论】:

    • 如果是“src/main/resources”,你在“where_you_want_to_store_the_index”里放什么,你必须创建一个jar?
    • 如果您运行一个项目,使用“lucene”会将索引存储在项目的根目录中。然后,您可以部署您的应用程序,索引将存储在 jar 旁边的“lucene”目录中。我认为它可以使用“src/main/resources”来工作,试一试。另一种可能性是将索引存储在用户主目录中,因此它不会依赖于您的应用程序的位置。
    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2014-06-26
    • 2015-03-22
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多