3

我运行 Apache tika-server 1.22 的未修改的 JAX-RS 实例,并将其用作 HTTP 端点服务,我将文件发布到(主要是 Office、PDF 和 RTF)并通过 HTTP 请求获取纯文本再现(使用Accept="text/plain"标题)来自我们的应用程序。

从 Tika 1.15 开始,默认行为现在是“提取所有嵌入文档” TIKA-2096

我希望能够在我们的 tika 服务器上关闭此行为,以便不提取嵌入式文档,并且我只获得主文档内容的文本再现。

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

对tika-parser-exclude-pdf-attachments的回答表明您可以通过 subclassing 关闭此行为EmbeddedDocumentExtractor,但我想检查是否可以通过tika-config.xml无需对 tika-server 进行自定义构建来执行此操作。

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

4

1 回答 1

2

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

以前没有办法对 Tika Server 中的嵌入文件执行此操作,除了使用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(尚未发布)中添加了一个功能,以允许使用标头设置跳过嵌入文件:

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

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

于 2020-11-12T03:04:16.267 回答