如何为几种文档类型正确配置Apache Tika?

时间:2011-07-23 23:46:18

标签: java configuration apache-tika

我一直在使用Tika一段时间,我知道一个人应该只使用Tika facade,默认或自定义TikaConfig代表org/apache/tika/mime/tika-mimetypes.xml文件。

我的应用程序不允许任何文档类型与html,doc,docx,odt,txt,rtf,srt,sub,pdf,odf,odp,xls,ppt,msg

不同

,默认的MediaTypes包含大量其他。

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

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

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

1 个答案:

答案 0 :(得分:2)

如果您只想接受某些类型,那么您仍然需要设置完整的mimetypes。否则,你怎么能检测到某人给你的文件实际上是MP3,而不是你批准的格式之一?因此,请保留完整的mimtypes以便检测

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

但是,如果您想要额外检查,有两种方法可以做到。一种是拥有自定义org.apache.tika.parser.Parser文件,该文件仅列出您要使用的格式的解析器。这是用于确定哪些解析器可用于AutoDetectParser的配置文件,因此,如果您从该列表中删除了MP3Parser,则自动检测解析器将停止处理MP3。

另一种方法是拥有您希望支持的解析器的明确列表。然后,不是使用自动检测解析器,而是简单地遍历所有这些解析器,直到找到能够处理该文件的那个,然后直接调用该解析方法。这将为您提供最多的控制,但可能会有更多的工作。