Tika Parser: исключить вложения в формате PDF - PullRequest
0 голосов
/ 12 июня 2018

Существует PDF-документ с вложениями (здесь: joboptions), которые не должны быть извлечены Tika.Содержимое не следует отправлять в Solr.Есть ли способ исключить некоторые (или все) вложения PDF в конфигурации Tika?

Ответы [ 2 ]

0 голосов
/ 19 июня 2018

Реализуйте пользовательский org.apache.tika.extractor.DocumentSelector и установите его на ParseContext.DocumentSelector вызывается с метаданными внедренного документа, чтобы решить, нужно ли анализировать внедренный документ.

Пример DocumentSelector:

public class CustomDocumentSelector implements DocumentSelector {

  @Override
  public boolean select(Metadata metadata) {
    String resourceName = metadata.get(Metadata.RESOURCE_NAME_KEY);
    return resourceName == null || !resourceName.endsWith(".joboptions");
  }
}

Зарегистрируйте его вParseContext:

parseContext.set(DocumentSelector.class, new CustomDocumentSelector());
0 голосов
/ 13 июня 2018

@ gagravarr, мы изменили это поведение с помощью TIKA-2096 , Tika 1.15.По умолчанию теперь «извлечь все внедренные документы».Чтобы избежать анализа вложенных документов, позвоните:

parseContext.set(Parser.class, new EmptyParser())

Или подклассу EmbeddedDocumentExtractor, чтобы ничего не делать, и отправьте это через ParseContext.

Если вы использовалиTikaEntityProcessor в Solr DIH, я бы установил extractEmbedded на false, но это не так;и, пожалуйста, не надо.:)

Итак, я не думаю, что есть простой способ отключить разбор встроенных документов только для PDF, и я не уверен, что вы захотите.Что, если бы к файлу PDF был прикреплен файл MSWord, например?

Если вы хотите игнорировать .joboptions, вы можете использовать пользовательский EmbeddedDocumentExtractor.

...