executionStats 和 allPlansExecution explain
详细模式的 响应包括一个stats
字段,该字段包含有关查询在 查询执行的各个阶段所 花费的 时间 的信息。
时间细分描述了与查询执行区域相关的执行统计信息。 以下字段显示时间细分:
| | |
---|
| | 在该 区域执行任务所用的大约时间,包括查询子级在此 区域所用的时间。该值是在该区域中执行任务时经过的近似毫秒数。 |
| | 调用此 区域中包含的任务的次数。 该值是任务名称到其调用计数的映射。 |
统计信息可用于以下查询领域:
| |
---|
| 与 Lucene 查询执行相关的统计信息。 此区域中枚举了两个任务的调用计数: | 评分器遍历文档并为每个文档生成分数。 调用createScorer 会创建负责评分的对象。 请注意,与此任务相关的时间不是实际对文档进行评分所花费的时间。 计数包括scorerSupplier 调用次数。 | | 权重存储与查询和IndexSearcher 关联的状态。 计数包括createWeight 调用次数。 |
此区域花费的时间与查询的结构有关,而不是基于迭代和评分的结果数量。 例如: "context" : { | "millisElapsed" : NumberDouble(4.934751), | "invocationCounts" : { | "createWeight" : NumberLong(1), | "createScorer" : NumberLong(10) | } | } |
|
| 与遍历和匹配结果文档相关的统计信息。 此统计信息显示确定下一个匹配的文档所需的时间。 根据查询的性质,匹配结果所花费的时间可能会有很大差异。 此区域中枚举了两个任务的调用计数: | 请求前进到结果集的下一个文档。 这涉及识别并移动过去的跳过,或查找下一个匹配项所需的其他任务。 计数包括nextDoc 和advance 调用的次数。 | | 执行更彻底的匹配。 某些查询以双阶段过程执行,其中首先对文档进行“粗略”匹配,仅在满足第一次粗略匹配后才使用第二个更彻底的阶段进行检查。 refineRoughMatch 任务是双阶段进程的第二阶段。 计数包括refineRoughMatch 调用次数。 |
例如: "match" : { | "millisElapsed" : NumberDouble(4.901597), | "invocationCounts" : { | "nextDoc" : NumberLong(541), | "refineRoughMatch" : NumberLong(0) | } | } |
|
| 与结果集中的文档评分相关的统计信息。 此区域中枚举了两个任务的调用计数: | 对结果集中的每个文档进行评分。 计数包括score 调用次数。 | | 忽略分数低于给定值的文档。 表示查询也许能够通过忽略分数低于某个非竞争阈值的文档来减少执行的评分操作数。 计数包括setMinCompetitiveScore 调用次数。 |
例如: "score" : { | "millisElapsed" : NumberDouble(3.931312), | "invocationCounts" : { | "score" : NumberLong(536), | "setMinCompetitiveScore" : NumberLong(0) | } | } |
|