我运行一个未修改的 Apache tika-server 1.22 的 JAX-RS 实例,并将其用作 HTTP 端点服务,我将文件发布到(主要是 Office、PDF 和 RTF)并通过 HTTP 请求(使用Accept="text/plain"
header )来自我们的应用程序。
从 Tika 1.15 开始,默认行为现在是“提取所有嵌入的文档”TIKA-2096 .
我希望能够在我们的 tika-server 上关闭此行为,以便不提取嵌入的文档,并且我只能获得主要文档内容的文本再现。
是否可以通过 tika-config.xml
来做到这一点?文件,或者我需要做一个自定义构建和子类 EmbeddedDocumentExtractor
所以它什么都不做?
回复 tika-parser-exclude-pdf-attachments表示您可以通过继承 EmbeddedDocumentExtractor
来关闭此行为。 ,但我想检查是否可以通过 tika-config.xml
执行此操作无需对 tika-server 进行自定义构建。
我看过Configuring Tika但这里没有提到嵌入式文档。
最佳答案
答案在tika-parser-exclude-pdf-attachments如果您通过代码调用 Tika,则非常适合。
以前没有办法对 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 的解析器都会遵守这一点。
关于apache-tika - 有没有办法关闭 tika-server 中嵌入文档的解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58318584/