在nutch插件中使用tika

时间:2012-02-07 09:49:50

标签: apache parsing nutch apache-tika

在nutch中,我正在实现一个插件,它将获取网页内容并以特殊方式处理它们。

我的主要问题是我想将网页转换为plainText以便能够处理,我读到tika工具包可以做到这一点

所以,我发现这段代码使用tika解析网址,我在过滤方法

下编写
 public ParseResult filter(Content content, ParseResult parseResult, HTMLMetaTags metaTags, DocumentFragment doc) 
  {
 byte[] raw = content.getContent();
 ContentHandler handler = new BodyContentHandler();
 Metadata metadata = new Metadata();
 Parser parser = new AutoDetectParser(); 
 parser.parse(new ByteArrayInputStream(raw), handler, metadata, new ParseContext());
 String plainText = handler.toString(); 
 LOG.info("Mime: " + metadata.get(Metadata.CONTENT_TYPE));
 LOG.info("content: " + handler.toString());

      }

metadata.get(Metadata.CONTENT_TYPE)的结果是text / html

但是handler.toString()是空的!

更新: 我也尝试在解析器方法之后使用这一行

 LOG.info ("Status : "+ new ParseStatus().toString());

我得到了这个结果: 状态:未分析(0,0)

2 个答案:

答案 0 :(得分:1)

从版本1.1开始,Nutch包含一个Tika plugin(另请参阅NUTCH-766),它可以满足您的需求。我不知道是否有更全面的文档可用。您可能想要询问Nutch users邮件列表以获取更多详细信息(或者SO上的某人可以填写)。

答案 1 :(得分:0)

正如Jukka Zitting所说,Tika已经在荷兰被利用了。在您粘贴的代码中,您没有将metadataParseStatus设置为任何nutch特定数据结构的位置。所以你没有相应地看到ParseStatus