我需要将 nutch 抓取的获取内容索引到 solr 中。nutch 索引中的 Solrjob 仅解析内容。我需要所有 HTML 标签的内容。有人可以指导我吗?
谢谢苏德
Nutch 有一系列解析器和过滤器,可以从获取的 HTML 中提取内容。
您需要实现 HtmlParserFilter,将原始内容写入元标记并将其插入 SOLR 字段。
下面的教程是关于索引过滤器的,但它遵循相同的流程。
你的类应该实现“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 内容。
笔记: -
确保您已启用元标记插件。这很重要,因为您本质上是将原始内容存储为元数据。
您可以将 nutch 2.1 与 Cassandra 后端或 Mysql(它有一些错误)或 HBase 一起使用。然后你就可以在数据库中进行查询,并从页面中获取所有的html代码。