1

我需要将 nutch 抓取的获取内容索引到 solr 中。nutch 索引中的 Solrjob 仅解析内容。我需要所有 HTML 标签的内容。有人可以指导我吗?

谢谢苏德

4

2 回答 2

2

Nutch 有一系列解析器和过滤器,可以从获取的 HTML 中提取内容。

您需要实现 HtmlParserFilter,将原始内容写入元标记并将其插入 SOLR 字段。

下面的教程是关于索引过滤器的,但它遵循相同的流程。

Nutch 插件

你的类应该实现“HtmlParseFilter”而不是“IndexingFilter”。覆盖 filter() 方法:

@Override
public ParseResult filter(Content content, ParseResult parseResult, HTMLMetaTags metaTags, DocumentFragment doc) {
    Metadata metadata = parseResult.get(content.getUrl()).getData().getParseMeta();
    byte[] rawContent = content.getContent();
    String str = new String(rawContent, "UTF-8");
    metadata.add("rawcontent", str);
        return parseResult;
}

之后,更改您的 schema.xml 并添加新字段:

<field name="metatag.rawcontent" type="text" stored="true" indexed="true" multiValued="false"/>

编译、部署、重新抓取、重新索引。

您现在应该在 SOLR 索引中看到原始 HTML 内容。

笔记: -

确保您已启用元标记插件。这很重要,因为您本质上是将原始内容存储为元数据。

于 2013-05-14T20:23:02.327 回答
0

您可以将 nutch 2.1 与 Cassandra 后端或 Mysql(它有一些错误)或 HBase 一起使用。然后你就可以在数据库中进行查询,并从页面中获取所有的html代码。

于 2013-04-29T15:01:56.150 回答