1.它似乎运行了一两个小时。我在 solr 中得到了相应的结果。但在抓取阶段,似乎在终端屏幕中获取并解析了很多 url。为什么不将它们添加到种子列表中?
nutch 不会修改种子文件,它只是作为注入阶段的只读用途。
2.如何知道我的crawldb是否在增长?
你应该看看readdb -stats 选项,你应该得到这样的东西
crawl.CrawlDbReader - Statistics for CrawlDb: test/crawldb
crawl.CrawlDbReader - TOTAL urls: 5584
crawl.CrawlDbReader - shortest fetch interval: 30 days, 00:00:00
crawl.CrawlDbReader - avg fetch interval: 30 days, 01:14:16
crawl.CrawlDbReader - longest fetch interval: 42 days, 00:00:00
crawl.CrawlDbReader - earliest fetch time: Tue Nov 07 09:50:00 CET 2017
crawl.CrawlDbReader - avg of fetch times: Tue Nov 14 11:26:00 CET 2017
crawl.CrawlDbReader - latest fetch time: Tue Dec 19 09:45:00 CET 2017
crawl.CrawlDbReader - retry 0: 5584
crawl.CrawlDbReader - min score: 0.0
crawl.CrawlDbReader - avg score: 5.463825E-4
crawl.CrawlDbReader - max score: 1.013
crawl.CrawlDbReader - status 1 (db_unfetched): 4278
crawl.CrawlDbReader - status 2 (db_fetched): 1014
crawl.CrawlDbReader - status 4 (db_redir_temp): 116
crawl.CrawlDbReader - status 5 (db_redir_perm): 19
crawl.CrawlDbReader - status 6 (db_notmodified): 24
我经常做的一个好办法是把这个命令放在 nutch (bin/crawl) 提供的爬取脚本中,在循环中
for for ((a=1; ; a++))
do
...
> echo "stats"
> __bin_nutch readdb "$CRAWL_PATH"/crawldb -stats
done
大约一个月了,我在 solr 上获得的唯一结果来自种子列表及其链接。
原因是多方面的,你应该检查每个阶段的输出,看看漏斗是怎么回事。
3.我在 crontab -e 和 plesk 计划任务中设置了上述命令。现在我多次获得相同的链接以换取搜索查询。如何避免 solr 出现重复结果?
猜你使用的是 nutch 默认的 solr 架构,检查 url 与 id 字段。
据我所知, id 是 url 的唯一标识符(可能内容重定向)