如何从NUTCH数据库(CrawlDB)中删除/删除未获取的URL

时间:2017-06-29 07:20:10

标签: lucene nutch

我想使用nutch抓取新的URL列表,但有一些未获取的URL可用:

bin/nutch readdb -stats

WebTable statistics start
Statistics for WebTable: 
retry 0:    3403
retry 1:    25
retry 2:    2
status 4 (status_redir_temp):   5
status 5 (status_redir_perm):   26
retry 3:    1
status 2 (status_fetched):  704
jobs:   {db_stats-job_local_0001={jobName=db_stats, jobID=job_local_0001, counters={Map-Reduce Framework={MAP_OUTPUT_MATERIALIZED_BYTES=227, REDUCE_INPUT_RECORDS=13, SPILLED_RECORDS=26, VIRTUAL_MEMORY_BYTES=0, MAP_INPUT_RECORDS=3431, SPLIT_RAW_BYTES=1059, MAP_OUTPUT_BYTES=181843, REDUCE_SHUFFLE_BYTES=0, PHYSICAL_MEMORY_BYTES=0, REDUCE_INPUT_GROUPS=13, COMBINE_OUTPUT_RECORDS=13, REDUCE_OUTPUT_RECORDS=13, MAP_OUTPUT_RECORDS=13724, COMBINE_INPUT_RECORDS=13724, CPU_MILLISECONDS=0, COMMITTED_HEAP_BYTES=718675968}, File Input Format Counters ={BYTES_READ=0}, File Output Format Counters ={BYTES_WRITTEN=397}, FileSystemCounters={FILE_BYTES_WRITTEN=1034761, FILE_BYTES_READ=912539}}}}
max score:  1.0
status 1 (status_unfetched):    2679
min score:  0.0
status 3 (status_gone): 17
TOTAL urls: 3431
avg score:  0.0043631596
WebTable statistics: done

那么,我如何从Nutch Database中删除它?感谢

1 个答案:

答案 0 :(得分:0)

你可以使用CrawlDbMerger,但你只能通过URL而不是状态进行过滤,Generator Job已经支持使用jexl表达式,但据我记得,我们现在还没有内置的功能抓取DB。

一种方法是使用status_unfetchedreaddb)列出所有网址并编写一些正则表达式来阻止它们(使用普通网址过滤器)然后您只需使用CrawlDbMerger过滤抓取启用此过滤器后,您的网址就会消失。