2016-04-30 17 views
1

Wie zu analysieren.Pst-Datei mit Apache Tika 1.2?
Wie kann ich beim Suchen mit ljcene ganze Körper, Anhang und alle Metadaten der E-Mail bekommen?So extrahieren Sie Inhalte aus. Pst-Datei mit Apache Tika?

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

Ya ich mit autodetect Parser versucht haben, mit BodyContenthandle, Metadaten und Dokumentobjekt – user2857190

+0

für (Datei docs.listFiles()) { Metadaten metadata = new Metadata(); ContentHandler-Handler = new BodyContentHandler(); ParseContext context = new ParseContext(); Parser Parser = neue AutoDetectParser(); InputStream-Stream = neuer FileInputStream (Datei); \t \t \t try { \t \t \t \t parser.parse (Strom, Handler, Metadaten, Kontext); \t \t \t} \t \t \t catch (TikaException e) { \t \t \t \t e.printStackTrace(); \t \t \t} catch (SAXException e) { \t \t \t \t e.printStackTrace(); \t \t \t} – user2857190

Antwort

1

Wenn Sie mit 1.2 stecken, könnte man die Empfehlung versuchen here

Wenn Sie ein Upgrade sind in der Lage zu sein, haben wir das als RecursiveParserWrapper in 1,7 ... nur 1.12 aktualisieren, wenn Sie kann, oder warten Sie eine Woche oder zwei und 1.13 sollte draußen sein.

Via Kommandozeile:

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

Oder Code:

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

Willkommen bei StackOverflow Tim! Vergiss nicht, dass du [diesem StackExchange-Filter folgen] kannst (http://stackexchange.com/filters/212512/apache-tika-questions), um auf einer von dir gewählten Frequenz über neue Tika-Fragen informiert zu werden! :) – Gagravarr

+0

Ich habe es versucht, es gibt nur Metadaten der E-Mail, wie können wir den E-Mail-Körper abrufen .... Und Anhänge – user2857190

+0

Jedes Metadaten-Objekt repräsentiert eine Datei/Anhang. Wie groß ist die von 'wrapper.getMetadata()' zurückgegebene Liste? Der Inhalt sollte im 'X-TIKA: Content Key' durchkommen. Ich habe das auf einem frisch gemachten PST einfach überprüft und es funktioniert. Sollten Sie Ihre PST mit uns auf unserer [JIRA] (https://issues.apache.org/jira/browse/tika/) teilen können? –

Verwandte Themen