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

Why do I have different document counts in status and index?

所以我正在学习 Storm-Crawler-ElasticSearch 教程并使用它。

当使用 Kibana 进行搜索时,我注意到索引名称 'status' 的命中数远远大于 'index'。

示例:

在左上角,您可以看到 846 次点击 对于 'status' 索引 我认为这意味着它有抓取了 846 个页面。

现在有了'index'索引,结果显示只有31次点击

我知道功能索引和状态是不同的,因为状态只负责 link 元数据。问题是 StormCrawler 似乎正在解析许多页面而不是为它们编制索引。

因此,我希望 'index' 上显示的内容也能获得相同数量的点击率。而不仅仅是 31.

'status' 索引包含有关爬虫获取或发现的所有 URL 的信息。这大致相当于 Nutch.The 'index' 中的 crawdb 索引包含已被提取、解析和编入索引的页面。

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

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

So what I would like to have is the same amount of hits on 'index' too with the content displayed. Instead of just 31.

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

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