【问题标题】:Tell StormCrawler to delete pages from ES-index after they have been deleted on the server在服务器上删除页面后,告诉 StormCrawler 从 ES-index 中删除页面
【发布时间】:2017-03-15 21:05:12
【问题描述】:

我有以下场景:

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

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

问题: Elasticsearch-Index 仍然保留文档,但由于页面已被删除,这没有任何意义。

查看配置,我还没有找到一种方法来告诉 StormCrawler 从 ES-index 中删除状态为“错误”的文档(例如,已被删除)。 有没有办法使用 StormCrawler 来实现这一点,或者有什么原因无法做到这一点?

非常感谢您的帮助!

【问题讨论】:

    标签: web-crawler stormcrawler


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2011-02-13
    • 2021-08-24
    • 2012-05-25
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多