2015-06-24 84 views
1

我正在使用Tika从不同类型的文件中提取文本。所以我使用''AutoDetectParser``解析器,但它看起来像它的注册表是空的。我有以下代码,它返回一个空列表(第三和第四行)。如何在Tika中正确配置AutoDetectParser?

Parser parser = new AutoDetectParser(); 
ParseContext con = new ParseContext(); 
System.out.println(parser.getSupportedTypes(con))); 
System.out.println(" parsers "+parser.getParsers()); 

我应该如何正确配置AutoDetectParser,它可以调用适当的解析器?

+1

这通常是由于忘记在运行时类路径中包含'tika-parsers' jar以及依赖关系造成的。你是否完全确定*你的运行时类路径中存在这些jar并且可读? – Gagravarr

+0

你有没有尝试检查你的安装具有哪些解析器?[详见Tika疑难解答指南](https://wiki.apache.org/tika/Troubleshooting%20Tika#Identifying_what_Parsers_your_Tika_install_supports),以及[识别失败的解析器按照故障排除指南加载](https://wiki.apache.org/tika/Troubleshooting%20Tika#Identifying_if_any_Parsers_failed_to_be_loaded)? – Gagravarr

+0

谢谢。问题在于服务文件,他们错过了。 –

回答

1

将评论提升为答案 - 您通常不需要!只要你有在运行时的蒂卡核心和提卡解析器罐子,用自己需要的依赖一起,那么默认TikaConfig object将自动检测和如果由于某种原因,你已经自动加载它们都为你

错过了一些罐子在运行时,或者你已经折腾了重新包装提卡,损失了一些服务的文件,那么你要遵循的Apache Tika troubleshooting wiki的说明,尤其是在Identifying what Parsers your Tika install supportsIdentifying if any Parsers failed to be loaded

(如果你想要做的非标准的东西,如排除某些解析器,强制某些解析器,或使解析器处理非标准的MIME类型,那么你需要一个定制的TKA配置。通常你会做与tika-config.xml文件,请参阅here on the Tika wiki你可以做什么)