为什么我在状态和索引中有不同的文档计数?

时间:2018-03-16 07:32:40

标签: elasticsearch web-crawler kibana stormcrawler

所以我跟随Storm-Crawler-ElasticSearch教程并玩弄它。

当使用Kibana进行搜索时,我注意到索引名称和状态'的点击次数。远远超过'指数'。

示例:

在左上方,您可以看到 846次点击 状态' 索引我认为这意味着它已经抓取了通过846页。

enter image description here

现在使用' index'指数,显示仅有31次点击

我理解功能性索引和状态是不同的,因为状态只负责链接元数据。问题是看起来StormCrawler正在解析许多页面而不是索引它们。

所以我希望得到的是' index'也显示内容。而不只是31。

2 个答案:

答案 0 :(得分:2)

'status'索引包含有关抓取工具提取或发现的所有网址的信息。这大致相当于Nutch中的crawldb。'index'索引包含已经获取,解析并且索引的页面。

现在,如果您查看状态索引中的“状态”字段,您会发现有不同的值指示URL是否已被DISCOVERED,FETCHED等...请参阅WIKI about status stream。 标记为DISCOVERED的那些尚未获取,因此不能在“索引”索引中。如果按状态过滤状态索引的内容:FETCHED,您应该看到与目标索引相当的数字。

SC中的Elasticsearch模块包含kibana模板,允许您查看每个状态的URL细分。如果您还没有这样做,我建议您查看video tutorials on Youtube

  

所以我希望得到的是与'index'相同的点击次数与显示的内容。而不只是31。

它最终会到达那里,你只需要给爬行器一些时间来完成它的工作(并且礼貌地这样做)。请记住,爬虫会比获取URL更快地发现URL。在询问速度之前,请阅读FAQ

答案 1 :(得分:0)

重定向和提取错误是造成差异的另一个可能原因。它们存在于状态索引中,但不存在于内容索引中。