2017-10-12 47 views
0

我已经在CentOS Linux版本7.3.1611上集成了nutch 1.13和solr-6.6.0我已经在/ usr/local/apache中给出了约10个urls的种子列表-nutch-1.13 /网址/ seed.txt我跟着tutorial 我使用的命令是如何注入在爬到nutch种子列表中发现的网址

/usr/local/apache-nutch-1.13/bin/crawl -i -D solr.server.url = httpxxx:8983/Solr的/ Nutch的/ /usr/local/apache-nutch-1.13/urls/爬行100

  1. 这似乎运行一两个小时。我在solr中得到相应的结果。但是在爬行阶段,很多网址似乎在终端屏幕上被抓取和解析。他们为什么不被添加到种子列表?

2.如何知道我的crawldb是否在增长?已经有大约一个月的时间了,我唯一得到的结果来自种子列表及其链接。

3.我在crontab -e和plesk计划任务中设置了上述命令。现在,我多次获取相同的链接以换取搜索查询。如何避免solr中出现重复结果?

我是一个总新手和任何额外的信息将是有帮助的。

回答

0

1.它似乎运行了一两个小时。我在solr中得到相应的结果。但是在爬行阶段,很多网址似乎在终端屏幕上被抓取和解析。他们为什么不被添加到种子列表?

种子文件永远不会被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 /爬行),环

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的唯一标识符(可能会重定向内容)