java如何在多个部分中解析和索引一个大文件,以便在inputstream中读取一个文件时消耗更少的内存?
我使用Tika Apache Parser
来parse
一个文件elastic search
来索引一个文件
假设我有一个需要解析的文档文件。下面是代码示例:
public String parseToPlainText() throws IOException, SAXException, TikaException {
BodyContentHandler handler = new BodyContentHandler();
InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc");
AutoDetectParser parser = new AutoDetectParser();
Metadata metadata = new Metadata();
try {
parser.parse(stream, handler, metadata);
return handler.toString();
} finally {
stream.close();
}
}
正如你们所见,这是一个测试。文档文件已被读取,如果文件大小过大,则可能导致outofmemoryerror
。我需要我可以在input-streams
的小夹头中读取文件,并且parser.parse(stream, handler, metadata);
可以接受这些流块。我还有一个问题是,文件可以是任何类型。那么我如何在chuck of streams
中分割文件parser
如何接受它呢?
重要的是,每个文件都应该作为单个文件编制索引,甚至在最后编制索引时分割成块
共 (0) 个答案