Nutch solrindex命令不索引Solr中的所有URL

时间:2011-06-21 07:13:37

标签: solr nutch web-crawler

我有一个从特定域抓取的Nutch索引,我使用solrindex命令将已爬网数据推送到我的Solr索引。问题是,似乎只有一些已爬网的URL实际上在Solr中被索引。我有Nutch抓取输出到文本文件,所以我可以看到它抓取的网址,但是当我在Solr中搜索一些已抓取的网址时,我没有得到任何结果。

我用来执行Nutch抓取的命令:bin/nutch crawl urls -dir crawl -depth 20 -topN 2000000

此命令成功完成,输出显示我在生成的Solr索引中找不到的URL。

我正在使用命令将已爬网数据推送到Solr:bin/nutch solrindex http://localhost:8983/solr/ crawl/crawldb crawl/linkdb crawl/segments/*

此命令的输出表明它也已成功完成,因此过程终止过程似乎不是问题(这是我最初认为的可能)。

我发现奇怪的最后一件事就是整个Nutch& Solr配置与我之前在不同服务器上使用的设置完全相同,我没有那么多问题。它实际上是复制到这个新服务器上的相同配置文件。

TL; DR:我在Nutch中成功抓取了一组网址,但是当我运行solrindex命令时,只有部分网址被推送到Solr。请帮忙。

更新:我重新运行了所有这些命令,输出仍然坚持它一切正常。我已经调查过任何我能想到的索引编码器,但仍然没有运气。传递给Solr的URL都是活动的并且可以公开访问,因此这不是问题。我真的在这里碰到一堵墙,所以我会很乐意帮忙。

1 个答案:

答案 0 :(得分:1)

我只能猜测我的经历会发生什么:

有一个名为url-normalizer的组件(其配置为url-normalizer.xml)正在截断一些URL(删除URL参数,SessionIds,...)

此外,Nutch使用唯一约束,默认情况下,每个网址只保存一次。

因此,如果规范化器将2个或更多URL('foo.jsp?param = value','foo.jsp?param = value2','foo.jsp?param = value3',...)截断为完全相同的('foo.jsp'),它们只保存一次。因此,Solr只会看到所有已抓取网址的子集。

欢呼声

相关问题