2
我知道提卡有一個非常漂亮的包裝,讓我得到了讀者回從解析像這樣一個文件:提卡通過解析器信息中增加閱讀
Reader parsedReader = tika.parse(in);
但是,如果我用這個,我不能指定我想要的解析器和我想要傳入的元數據。例如,我想傳遞額外的信息,如使用哪個處理程序,解析器和上下文,但如果使用此方法,則無法執行此操作。據我所知,這是唯一一個讓我得到一個Reader實例並遞增讀取而不是獲取整個解析的字符串。
的事情例子我想包括:
Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(-1);
Metadata metadata = new Metadata();
metadata.set(Metadata.RESOURCE_NAME_KEY, fileName); //This aids in the content detection
ParseContext context = new ParseContext();
context.set(Parser.class, parser);
parser.parse(is, handler, metadata, context);
然而,在解析器調用解析直接不返回一個讀者,我唯一的選擇(在文檔中發現)是完全返回分析過的字符串,這對內存使用可能不是很好。我知道我可以限制返回的字符串,但是我希望遠離那個,因爲我想要完全解析的信息,但是以增量方式。兩全其美,這可能嗎?