我正在使用Tika Apache Parser
到parse
文件和elastic search
来索引文件。
假设我有一个需要解析的doc文件。这是代码示例:
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();
}
}
正如您所见,test.doc文件已在一段时间内被读取,如果文件大小太大,则可能导致outofmemoryerror
。我需要能够读取input-streams
的小文件中的文件,parser.parse(stream, handler, metadata);
可以接受这些流块。我有另一个问题是该文件可以是任何类型。那么我怎样才能在chuck of streams
中拆分文件,parser
怎么能接受呢?
重要的是,每个文件都应该被索引为单个文件,甚至在索引时分成块,最后。