我正在使用Lucene开发移动应用程序。我有一个包含索引文件的文件夹。在应用程序中,我想使用这些索引文件进行搜索。 Lucene Library期望读取此文件夹的路径。我把这个文件夹放在assets文件夹中。但我无法获得这个文件夹的路径。我检查了Android存储文档。但我找不到任何解决方案将现有文件夹添加到外部存储。如果我将它们添加到外部存储器,我可以使用getExternalFilesDir()
获取路径。我正在使用模拟器。
Directory dir = FSDirectory.open(Paths.get("path of index folder"));
IndexReader reader = DirectoryReader.open(dir);
searcher = new IndexSearcher(reader);
上面的代码部分在Java SE应用程序中运行良好,因为我可以直接给出文件夹的路径。但在Android中我正在使用模拟器。如何在android中给出索引文件夹的路径?我应该将此文件夹放在应用程序中的哪个位置?
答案 0 :(得分:0)
您将它们放入资源的文件夹中,然后在首次运行时将资产复制到文件系统。然后你可以将你写的位置传递给Lucene。
公平警告:我试图使用Lucene并且一年前不能使用,因为它使用的是未安装到Android的IO功能。现在Android上存在Java 1.8可能已经存在,但如果不是,您将会遇到其他问题需要解决。