如何配置Tika排除指定默认mime-type且无需使用自定义tika-mimetypes.xml
解答
可以在不自定义tika-mimetypes.xml的前提下排除指定默认MIME类型,你当前配置未生效的核心原因是配置项使用错误。
无效配置说明
org.apache.tika.detect.DefaultDetector本身不支持<mime-exclude>配置项,你添加在detector节点下的排除规则不会生效,属于冗余无效配置- 如果你已经给
message/rfc822指定了EmptyParser,本质上已经可以实现该类型文件不被解析的效果,你同时配置DefaultParser排除+指定EmptyParser的写法可能出现优先级冲突,建议统一逻辑
修正后可用配置
直接使用以下tika-config.xml即可实现需求:
<?xml version="1.0" encoding="UTF-8"?> <properties> <parsers> <parser class="org.apache.tika.parser.DefaultParser"> <mime-exclude>message/rfc822</mime-exclude> </parser> <parser class="org.apache.tika.parser.EmptyParser"> <mime>message/rfc822</mime> </parser> </parsers> </properties>
注意事项
- 确保配置文件命名为
tika-config.xml,放在类路径根目录下,或者启动服务时通过参数-Dtika.config=路径/to/tika-config.xml显式指定加载路径 - 上述配置兼容Tika 1.x全版本,Tika 2.x版本需确认parser全限定类名没有变更,核心配置逻辑一致
- 只有当你需要让Tika完全识别不到该MIME类型时,才需要修改
tika-mimetypes.xml,仅禁止解析该类型的场景下上述配置足够
内容的提问来源于stack exchange,提问作者Hynek Hrabík
相关产品推荐
相关产品推荐

