为什么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'
会成功的。
根据 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'
会成功的。