2016-04-30 105 views
1

如何使用apache tika解析.Pst文件 1.2?
如何在使用ljcene進行搜索時獲取整個主體,附件和電子郵件的所有元數據?如何從中提取內容。使用apache tika的Pst文件?

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(); 
} 
+0

雅我與自動檢測解析器嘗試(File file:docs.listFiles()){ 元數據元數據=新的元數據();與BodyContenthandle,元數據和文檔對象 – user2857190

+0

。 ContentHandler handler = new BodyContentHandler(); ParseContext context = new ParseContext(); 解析器解析器= new AutoDetectParser(); InputStream stream = new FileInputStream(file); \t \t \t嘗試{ \t \t \t \t parser.parse(流,處理程序,元數據,背景); \t \t \t} \t \t \t趕上(TikaException E){ \t \t \t \t e.printStackTrace(); \t \t \t}趕上(SAXException的發送){ \t \t \t \t e.printStackTrace(); \t \t \t} – user2857190

回答

1

如果你堅持1.2,你可能會如果你能夠升級嘗試推薦here

,我們補充說,由於RecursiveParserWrapper在1.7 ...只是升級到1.12,如果你可以,或者等待一兩個星期和1.13應該出局。

通過命令行:

Java的罐子蒂卡-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++; 
    } 
+0

歡迎來到StackOverflow Tim!不要忘了,你可以[按照這個StackExchange過濾器](http://stackexchange.com/filters/212512/apache-tika-questions)以你選擇的頻率得到新的Tika問題的通知! :) – Gagravarr

+0

我試過這個只給出元數據的郵件,我們如何檢索郵件正文....和附件 – user2857190

+0

每個元數據對象代表一個文件/附件。 'wrapper.getMetadata()'返回的列表有多大?內容應該通過'X-TIKA:內容密鑰'來實現。我剛剛在一個新制作的PST上檢查了這個,並且它工作正常。您有可能在我們的[JIRA](https://issues.apache.org/jira/browse/tika/)上與我們分享您的PST嗎? –

相關問題