Tika 解析器:排除 PDF 附件

Tika Parser: Exclude PDF Attachments

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

@gagravarr,我们通过 TIKA-2096、Tika 1.15 更改了该行为。现在默认为 "extract all embedded documents"。为避免解析嵌入式文档调用:

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

或子类 EmbeddedDocumentExtractor 不执行任何操作并通过 ParseContext 发送。

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

所以,我不认为有一种简单的方法可以关闭仅对 PDF 的嵌入式文档的解析,而且我不确定您是否愿意这样做。例如,如果 PDF 附有 MSWord 文件怎么办?

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

实施自定义 org.apache.tika.extractor.DocumentSelector 并将其设置在 ParseContext。使用嵌入文档的元数据调用 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());