2016-04-30 2 views
1

Как выполнить parse.Pst файл с помощью apache tika 1.2?
Как я могу получить все тело, вложение и все метаданные электронной почты во время поиска с помощью ljcene?Как извлечь контент из. Файл Pst с использованием 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

Я. Я попытался с автоопределением анализатора с объектами BodyContenthandle, Metadata и document – user2857190

+0

for (Файл файла: docs.listFiles()) { Метаданные метаданные = новые метаданные(); ContentHandler handler = new BodyContentHandler(); ParseContext context = new ParseContext(); Парсер парсер = новый AutoDetectParser(); InputStream stream = new FileInputStream (файл); \t \t \t попытка { \t \t \t \t parser.parse (поток, обработчик, метаданные, контекст); \t \t \t} \t \t \t улов (TikaException е) { \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 должен отсутствовать.

Via Командная строка:

Java -jar ТИК-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), чтобы получать уведомления о новых вопросах Тики по частоте по вашему выбору! :) – Gagravarr

+0

Я пробовал это, он дает только метаданные почты, как мы можем получить тело электронной почты .... И вложения – user2857190

+0

Каждый объект метаданных представляет файл/вложение. Насколько велик список, возвращаемый 'wrapper.getMetadata()'? Содержимое должно проходить через «X-TIKA: контент-ключ». Я просто дважды проверил это на свежеприготовленном PST, и он работает. Вы можете поделиться своим PST с нами на нашей [JIRA] (https://issues.apache.org/jira/browse/tika/)? –

Смежные вопросы