我正在使用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?
答案 0 :(得分:1)
默认情况下,Nutch使用org.apache.nutch.crawl.MD5Signature
类来计算URL的摘要,如果没有找到内容,则此类使用页面原始二进制内容的MD5Hash
函数计算摘要。使用URL。
DeduplicationJob
第一组摘要提取的网址(在您的情况下,两个网址都应具有相同的签名/摘要),并将所有网址标记为重复,除非得分最高的网址(如果两者都是)(或更多)URL具有相同的摘要和相同的分数,然后使用具有最新时间戳的URL。
在您的特定情况下,我认为org.apache.nutch.crawl.Signature
的自定义实施考虑了两个参数(网址和文本/原始内容)应该可以解决您的问题。这是必需的,因为现有的签名实现MD5Signature
,TextMD5Signature
和TextProfileSignature
只会在没有找到给定URL的文本/原始内容时考虑URL。然而,实施应该非常简单。
请注意,这可能会在索引中生成更多重复的网址。