1

我使用 Tika 已经有一段时间了,我知道应该只使用 Tika 外观和代表org/apache/tika/mime/tika-mimetypes.xml文件的默认或自定义 TikaConfig。

我的应用程序不允许任何不同于html,doc,docx,odt,txt,rtf,srt,sub,pdf,odf,odp,xls,ppt,msg

并且默认的 MediaTypes 包括大量其他类型。

我们是否应该修改 tika-mimetypes.xml 以便删除我们不需要的 MimeTypes ?然后据我了解,它将仅为这些 MimeType 创建复合解析器和检测器。

但是当它提供不支持的类型时会发生什么?我应该只捕获 TikaException 或一些 SAXException 并拒绝该文件吗?

另外应该如何手动编辑 tika-mimetypes.xml ?它有 1290 个 MimeTypes,其中大部分是荒谬的第三方 MimeTypes。他们为什么在那里?

4

1 回答 1

2

如果您只想接受某些类型,那么您仍然需要完整的 mimetypes 集。否则,您怎么能检测到某人刚刚给您的文件实际上是 MP3,而不是您认可的格式之一?所以,保持完整的 mimtypes 设置用于检测

一旦你完成了检测步骤,并且你已经确定它是一个有效的 mimetype,你可以将文件传递给AutoDetectParser并完成它。毕竟,你会检查检测器返回的 mimetype,如果它不是你喜欢的类型,你就已经退出了。

但是,如果您想要额外检查,有两种方法可以做到。一种是有一个自定义org.apache.tika.parser.Parser文件,它只列出您想要使用的格式的解析器。AutoDetectParser这是用于决定哪些解析器可供MP3Parser.

另一种方法是明确列出您希望支持的解析器。然后,与其使用自动检测解析器,不如简单地遍历所有这些解析器,直到找到一个能够处理文件的解析器,然后直接调用它的解析方法。这将为您提供最大的控制力,但可能需要做更多的工作。

于 2011-07-24T16:26:49.180 回答