我需要将nutch抓取的抓取内容索引到solr中。 nutch索引中的Solrjob只解析内容。我需要所有HTML标签的内容。任何人都可以指导我吗?
由于 Sudh
答案 0 :(得分:2)
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内容。
注意: -
确保您已启用metatags plugins。这很重要,因为您实际上将rawcontent存储为元数据。
答案 1 :(得分:0)
您可以将Nutch 2.1与Cassandra后端,或Mysql(它有一些错误)或HBase一起使用。然后,您将能够在数据库中进行查询,并从页面获取所有html代码。