Java Nutch 1.11自定义插件依赖项不返回任何结果

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,并返回预期结

我正在为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文件:

<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");
// ====================================