有没有办法关闭 tika-server 中嵌入文档的解析?

Is there a way to turn off parsing of embedded docs in the tika-server?

我 运行 一个未修改的 JAX-RS Apache tika-server 1.22 实例,并将其用作我 post 文件的 HTTP end-point 服务(主要是 Office、PDF 和 RTF)并从我们的应用程序中通过 HTTP 请求(使用 Accept="text/plain" header)获取 plain-text 再现。

从 Tika 1.15 开始,默认行为现在是 "extract all embedded documents" TIKA-2096.

我希望能够在我们的 tika-server 上关闭此行为,这样嵌入的文档就不会被提取,我只会得到主要文档内容的文本再现。

是否可以通过 tika-config.xml 文件执行此操作,或者我是否需要执行自定义构建和子类 EmbeddedDocumentExtractor 以便它什么都不做?

的回答表明您可以通过子类化 EmbeddedDocumentExtractor 来关闭此行为,但我想检查是否可以通过 tika-config.xml 执行此操作而无需自定义构建 tika-server.

我看过 Configuring Tika 但这里没有提到嵌入式文档。

如果您通过代码调用 Tika,tika-parser-exclude-pdf-attachments 中的答案非常有用。

以前没有办法对 Tika 服务器中的嵌入式文件执行此操作,除了使用 EmptyParser 禁用整个文件类型外:

<?xml version="1.0" encoding="UTF-8"?>
<properties>
    <parsers>
        <parser class="org.apache.tika.parser.EmptyParser">
            <mime-exclude>image/jpeg</mime-exclude>
            <mime-exclude>application/zip</mime-exclude>
        </parser>
    </parsers>
</properties>

这已成为一个普遍的要求,因此我在 Tika 1.25(尚未发布)中添加了一项功能,以允许使用 header 设置跳过嵌入式文件:

curl -T test_recursive_embedded.docx http://localhost:9998/tika --header "Accept: text/html" --header "X-Tika-Skip-Embedded: true"

任何使用 EmbeddedDocumentExtractor 的解析器都会遵守这一点。