单个抓取脚本抓取网站(Nutch)和索引结果(Solr)



我是Nutch和Solr的新手。我刚刚接管了活动,我现在必须抓取和索引我的网站。

这些是我被要求遵循的步骤。

  • 删除抓取文件夹(apache-nutch-1.10crawl)

  • 删除现有索引:

Solr-Admin-> Skyweb->Documents->文档类型(xml)并执行:

  • 进入Solr-Admin -> Core Admin ->点击"Reload",然后点击"Optimize"
  • 并使用以下命令运行爬行作业:

bin/crawl -i -D solr.server。url = http://IP: 8080/solr/网站/url/爬/5

我做了一些研究,觉得手动完成这些任务是过度劳累,脚本应该照顾所有以上的任务。

所以我的查询关注是:

上面的脚本没有处理整个过程吗?我还需要手动删除抓取文件夹和清除现有索引吗?

什么是管理任务的相关性-"重新加载"one_answers"优化"?

我可以安排爬行脚本每周运行,它会照顾整个过程吗?

我还可以如何自动爬行和索引定期运行?

有两种可能的方法:

  1. 配置Nutch在一周后重新获取所有先前抓取的页面,参见属性db.fetch.interval.default。保持爬行/文件夹和Solr索引不变。Nutch会自动从Solr中删除消失的页面。电动汽车。您应该在每次抓取(rm -rf crawl/segments/*)后删除旧段,以避免磁盘随着时间的推移而填满。

  2. 启动每个抓取从头开始(只是删除文件夹crawl/之前调用bin/crawl。也可以从命令行删除Solr索引,例如通过触发: curl http://localhost:8983/solr/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8' curl http://localhost:8983/solr/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8'

组合这些命令并将bin/crawl的调用包含在一个可以由cronjob调用的短shell脚本中并不困难。当然,也可以根据自己的需要修改脚本bin/crawl

冷静点!放松点!!你看过Apache歧管cf项目吗?它提供了一个干净的界面来抓取网页,比Nutch更好,从而减少了麻烦。它是开源的,在几分钟内,你可以用你所有的参数设置一个作业,并在你选择的服务器上索引你的数据,无论是Solr,弹性搜索,等等。而且,一旦设置了Job,就可以保存设置,这样就不必断断续续地进行配置。此外,它还支持Rest API,使您能够动态地自动化作业。谷歌一下。你不会后悔的。

最新更新