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

时间:2016-12-01 18:48:20

标签: java ant nutch

我正在为Nutch 1.11自定义parse-html插件以使用tika-1.14样机管。代码的意图是将samppipe结果存储在metata字段中,该字段稍后将由Solr索引。我之前用过这个tecnique就取得了成功。注意:我不想用samppipe替换内容字段 - 我想要除了完整内容之外的样品,所以我不能只设置nutch来使用biolerpipe作为默认值。

我在eclipse中设置了一个独立测试,插件中包含的Tika代码使用tika-app-1.14.jar依赖项查找并返回预期结果。

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>

使用Ant 1.9.2编译代码很好。

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

问题是tikaParser.parse调用没有返回任何内容。它应该使用samppipe结果填充tikaTextHandler并且它不会。运行nutch indexchecker或parsechcker时,代码完成正确显示所有字段,但重点字段为空。我检查确认并且hadoop.log中没有错误。

感谢您的帮助!

0 个答案:

没有答案