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

时间:2019-10-10 08:29:38

标签: apache-tika tika-server

我运行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的回答表明您可以通过将EmbeddedDocumentExtractor子类化来关闭此行为,但是我想检查是否可以通过tika-config.xml来执行此操作而不必这样做tika服务器的自定义版本。

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

1 个答案:

答案 0 :(得分:1)

tika-parser-exclude-pdf-attachments中的答案非常适合通过代码致电Tika。

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

<?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 的解析器都会对此表示敬意。