告诉StormCrawler在服务器上删除页面后删除ES-index中的页面

时间:2017-03-15 12:49:05

标签: web-crawler stormcrawler

我有以下情况:

  • StormCrawler
  • 抓取现有页面
  • StormCrawler将相应的文档添加到Elasticsearch索引
  • 该页面已在服务器上删除

=>爬虫通过更新状态索引“检测”页面的删除:文档获取状态“FETCH_ERROR”(并在达到“max.fetch.errors”状态“ERROR”后)。

问题: Elasticsearch-Index仍保留文档,但由于删除了没有意义的页面。

查看配置,我还没有找到一种方法告诉StormCrawler从ES-index中删除状态为“ERROR”的文档(例如已被删除)。 有没有办法使用StormCrawler来实现这一点,还是有理由不能这样做?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我们计划添加GONE状态,但尚未实施,请参阅#253。与此同时,我们可以删除ERROR状态(即使其中大部分都没有被添加到ES),难度是索引是在默认流上完成的,即已经获取和解析的文档,而状态信息被发送通过各种螺栓到状态流。我们可以有一个定制的删除螺栓 - 它只需要URL而不需要其他东西:使用它我们可以修改AbstractStatusUpdaterBolt,以便它发出要删除到特殊流上的URL,例如'删除'并将我们的定制ES删除螺栓连接到它。这有意义吗?请随时参与上述链接的讨论。谢谢!