Tika Parser:排除PDF附件

时间:2018-06-12 12:29:11

标签: pdf solr apache-tika

有一些PDF文档包含不应由Tika提取的附件(此处为:joboptions)。内容不应发送给Solr。有没有办法在Tika配置中排除某些(或所有)PDF附件?

2 个答案:

答案 0 :(得分:2)

@gagravarr,我们通过TIKA-2096,Tika 1.15改变了这种行为。现在默认为"提取所有嵌入文档"。为避免解析嵌入式文档,请调用:

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

或者子类EmbeddedDocumentExtractor什么都不做,并通过ParseContext发送。

如果您使用的是Solr DIH' TikaEntityProcessor,我将extractEmbedded设置为false,但您不是; {}请不要。 :)

所以,我不认为这是一种简单的方法来关闭仅针对PDF的嵌入式文档的解析,而且我不确定你是否想要。例如,如果有一个MSWord文件附加到PDF怎么办?

如果您想忽略.joboptions,可以使用自定义EmbeddedDocumentExtractor

答案 1 :(得分:1)

实施自定义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());