Java Nutch 1.11自定义插件依赖项不返回任何结果
我正在为Nutch 1.11定制解析html插件,以使用tika-1.14 boilerpipe。代码的目的是将样板管道结果存储在metatag字段中,Solr稍后将对该字段进行索引。我以前成功地使用过这项技术。注意:我不想用boilerpipe替换内容字段-除了完整内容之外,我还需要boilerpipe,所以我不能将nutch设置为默认使用biolerpipe 我在eclipse中设置了一个独立测试,插件中包含的Tika代码使用Tika-app-1.14.jar依赖项运行find,并返回预期结果 parse html plugin.xml文件已修改为包含tika-1.14.jar文件:Java Nutch 1.11自定义插件依赖项不返回任何结果,java,ant,nutch,Java,Ant,Nutch,我正在为Nutch 1.11定制解析html插件,以使用tika-1.14 boilerpipe。代码的目的是将样板管道结果存储在metatag字段中,Solr稍后将对该字段进行索引。我以前成功地使用过这项技术。注意:我不想用boilerpipe替换内容字段-除了完整内容之外,我还需要boilerpipe,所以我不能将nutch设置为默认使用biolerpipe 我在eclipse中设置了一个独立测试,插件中包含的Tika代码使用Tika-app-1.14.jar依赖项运行find,并返回预期结
<runtime>
<library name="parse-html.jar">
<export name="*"/>
</library>
<library name="tagsoup-1.2.1.jar"/>
<library name="tika-app-1.14.jar"/>
</runtime>
问题是tikaParser.parse调用没有返回任何内容。它应该用样板文件结果填充tikaTextHandler,但它没有。运行nutch indexchecker或parsechcker时,代码将正确显示所有字段,但强调字段为空。我检查确认hadoop.log中没有错误
谢谢你的帮助 您使用的是哪个版本的Nutch?基于,从v1.12开始,样板管支持似乎已经被合并。更多关于您定制
parse html
而不是修改parse tika
插件的原因,该插件已经为您完成了繁重的工作?感谢您的回复Jorge;与Nutch合并的样板管道将用biolerpipe数据替换内容字段。我两者都要。我定制解析html是因为我只需要html和xhtml页面的样板文件,我认为修改解析html会更容易,因为它只处理这些类型。我猜,但我的Java版本似乎有问题。我在Fedora24W/OpenJDK1.7上运行Nutch。我将在Debian上尝试这个,并让您知道(我打赌它会起作用)。您使用的是哪个版本的Nutch?基于,从v1.12开始,样板管支持似乎已经被合并。更多关于您定制parse html
而不是修改parse tika
插件的原因,该插件已经为您完成了繁重的工作?感谢您的回复Jorge;与Nutch合并的样板管道将用biolerpipe数据替换内容字段。我两者都要。我定制解析html是因为我只需要html和xhtml页面的样板文件,我认为修改解析html会更容易,因为它只处理这些类型。我猜,但我的Java版本似乎有问题。我在Fedora24W/OpenJDK1.7上运行Nutch。我将在Debian上尝试此功能,并让您知道(我打赌它会起作用)。
public ParseResult getParse(Content content) {
....
// part of default nutch which contains the full html content for the page
byte[] contentInOctets = content.getContent();
// ====================================
// Print an "I'm Here" message for debugging
String msg = "Tika Boilerpipe Parser";
System.out.println(msg);
// create the Tika stream
org.apache.tika.io.TikaInputStream stream =
org.apache.tika.io.TikaInputStream.get(contentInOctets);
// create the objects necessary for the boilerpipe
if (stream != null) {
org.apache.tika.metadata.Metadata md =
new org.apache.tika.metadata.Metadata();
org.apache.tika.parser.AutoDetectParser tikaParser =
new org.apache.tika.parser.AutoDetectParser();
org.apache.tika.sax.BodyContentHandler tikaTextHandler =
new org.apache.tika.sax.BodyContentHandler();
tikaParser.parse(stream,
new org.apache.tika.parser.html.BoilerpipeContentHandler(
tikaTextHandler), md);
if (tikaTextHandler != null) {
// tikaTextHandler is not null
System.out.println("md.Title: " + md.get("title"));
// md.get("title") = null
metadata.add("emphasis", tikaTextHandler.toString());
// emphasis = ''
}
}
System.out.println("Tika End");
// ====================================