如何从中提取内容。使用apache tika的Pst文件?

时间:2016-04-30 03:30:40

标签: pst

如何使用apache tika解析.pst文件 1.2?
在使用ljcene进行搜索时,如何获取电子邮件的全身,附件和所有元数据?

for (File file : docs.listFiles()) {
Metadata metadata = new Metadata();
ContentHandler handler = new BodyContentHandler();
ParseContext context = new ParseContext();
Parser parser = new AutoDetectParser();
InputStream stream = new FileInputStream(file);

try {
parser.parse(stream, handler, metadata, context);
}
catch (TikaException e) {
e.printStackTrace();
}
catch (SAXException e) {
e.printStackTrace();
}

1 个答案:

答案 0 :(得分:1)

如果你坚持使用1.2,可以尝试推荐here

如果您能够升级,我们在1.7中添加了RecursiveParserWrapper ...如果可以的话,只需升级到1.12,或等待一两周,1.13就应该出来。

通过命令行:

java -jar tika-app.jar -J -t -i input_directory -o output_directory

或代码:

    Parser p = new AutoDetectParser();
    RecursiveParserWrapper wrapper = new RecursiveParserWrapper(p,
            new BasicContentHandlerFactory(   
                   BasicContentHandlerFactory.HANDLER_TYPE.XML, -1));

    try (InputStream is = Files.newInputStream(file)) {
        wrapper.parse(is, new DefaultHandler(), new Metadata(), context);
    }
    int i = 0;
    for (Metadata metadata : wrapper.getMetadata()) {
        for (String name : metadata.names()) {
            for (String value : metadata.getValues(name)) {
                 System.out.println(i + " " + name +": " + value);
            }
        }
        i++;
    }