为什么Tika门面选择EmptyParser呢?

Why does the Tika facade choose EmptyParser?

根据 elasticsearch-mappper-attachment plugin 的示例,我正在使用 Tika 外观。这是我的测试代码:

Tika tika = new Tika();                                                                                                                                                                                 
Metadata md = new Metadata();

try {                                                                                                                                                                                                   
    String content = tika.parseToString(src, md, 100000);

    System.out.println("Content length: " + content.length());  

    for (String s: md.names()) {                                                                                                                                                                        
        System.out.println(s + ": " + md.get(s));                                                                                                                                                       
    }                                                                                                                                                                                                   
}                                                                                                                                                                                                       
catch (TikaException e) {                                                                                                                                                                               
    System.out.println(e);                                                                                                                                                                              
} 

这是输出:

Content length: 0
X-Parsed-By: org.apache.tika.parser.EmptyParser
Content-Type: text/html

所以问题是:如果 Tika 正确识别输入为 text/html,为什么它使用 EmptyParser?如果我应该传递一个解析器,我应该传递哪个解析器以获得最佳结果,假设自动检测成功,如上所述。

谢谢。

确保 tika-parsers 在您的类路径中!如果您使用 Gradle、

compile 'org.apache.tika:tika-parsers:1.7'

会成功的。