我需要將提取的內容通過nutch索引到solr中。 Solrjob in nutch索引僅解析內容。我需要所有HTML標籤的內容。任何人都可以指導我嗎?如何索引apache nutch提取的內容而不解析爲solr
感謝 Sudh
我需要將提取的內容通過nutch索引到solr中。 Solrjob in nutch索引僅解析內容。我需要所有HTML標籤的內容。任何人都可以指導我嗎?如何索引apache nutch提取的內容而不解析爲solr
感謝 Sudh
你可以使用Nutch的2.1卡桑德拉後端,或MySQL(它有一些錯誤),或HBase的。然後,您將能夠在數據庫中進行查詢,並從頁面獲取所有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內容。
注: -
確保您已啓用metatags plugins。這很重要,因爲您實際上是將rawcontent存儲爲元數據。