在nutch 1.11中对具有相同内容和不同URI

时间:2016-04-19 15:11:27

标签: nutch

我正在使用nutch来爬网内部网站。我遇到了一个场景,其中2个站点具有相同的内容(比较使用notepad ++的两个站点的视图源)但不同的URI。 e.g。

http://site_name.domain_name.com/a/b/c/index.html
http://site_name.domain_name.com/x/y/z/index.html

Nutch正在索引其中任何一个,但不是两个。

如何改变nutch的这种行为并索引这两个URL?

1 个答案:

答案 0 :(得分:1)

默认情况下,Nutch使用org.apache.nutch.crawl.MD5Signature类来计算URL的摘要,如果没有找到内容,则此类使用页面原始二进制内容的MD5Hash函数计算摘要。使用URL。

DeduplicationJob第一组摘要提取的网址(在您的情况下,两个网址都应具有相同的签名/摘要),并将所有网址标记为重复,除非得分最高的网址(如果两者都是)(或更多)URL具有相同的摘要和相同的分数,然后使用具有最新时间戳的URL。

在您的特定情况下,我认为org.apache.nutch.crawl.Signature的自定义实施考虑了两个参数(网址和文本/原始内容)应该可以解决您的问题。这是必需的,因为现有的签名实现MD5SignatureTextMD5SignatureTextProfileSignature只会在没有找到给定URL的文本/原始内容时考虑URL。然而,实施应该非常简单。

请注意,这可能会在索引中生成更多重复的网址。