检查索引是否是最新的?

Check whether an index is up to date?

不久前,我发布了一篇 关于 elasticsearch 索引以及如何检查它们的总体健康状况的文章。

我收到了一些很棒的回复,并已将它们合并,但最近我遇到了一种情况,即有问题的索引有一段时间没有更新了。因此,我对它的查询要么没有返回任何数据,要么返回的数据异常少。

索引的健康状况始终保持 'green',所以我想知道是否可以判断索引是否正在更新,更新的速度是多少,and/or 上次索引更新的时间更新了新数据?这样我就可以了解 'busy' 的情况并从中得出结论。

您好,使用统计信息 API 您可以询问有关索引的大量信息。您可以询问插入、搜索等的数量。在您的情况下,您可能想查看刷新的数量。刷新后,文档可供搜索。不过,它没有给出上次刷新的时刻。下面是对以下请求的部分响应:

获取/gridshore/_stats/refresh

   "indices": {
      "gridshore-20141224151357": {
         "primaries": {
            "refresh": {
               "total": 1,
               "total_time_in_millis": 0
            }
         },
         "total": {
            "refresh": {
               "total": 1,
               "total_time_in_millis": 0
            }
         }
      }
   }

有关统计数据的更多信息 api 可在此处找到: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-stats.html

另一种选择是使用 marvel 插件,该插件还保存发生的刷新的历史记录。