如何索引apache nutch获取的内容而不解析为solr

时间:2013-04-18 06:02:43

标签: solr nutch

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

由于 Sudh

2 个答案:

答案 0 :(得分:2)

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

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

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

Nutch plugin

您的类应该实现“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内容。

注意: -

确保您已启用metatags plugins。这很重要,因为您实际上将rawcontent存储为元数据。

答案 1 :(得分:0)

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