我正在使用ElasticSearch配置文件API来帮助进行缓慢的查询。
当我阅读the elasticsearch profiling docs时,听起来好像分片中的查询的time_in_nanos
值应小于运行概要分析查询时的总took
时间。
但是,我得到了以下结果:
{
"took": 109695,
...
"profile": {
"shards": [
{
"searches": [
{
"query": [
{
"type": "BooleanQuery",
"time": "1550750.786ms",
"time_in_nanos": 1550750786163
...
}
]
}
]
}
...
]
}
}
因此,我发现查询took
109695
ms〜= 109
秒似乎是正确的。
但是,我看到1550750786163
的{{1}}值对应time_in_nanos
分钟。这与20
值不匹配。 took
命令耗时约2分钟,因此curl
时间似乎准确,而took
时间似乎并不准确。
在ElasticSearch配置文件查询中解释time_in_nanos
值的正确方法是什么?
ES版本:5.6
答案 0 :(得分:1)
根据Elastic search Github存储库,配置文件计时是采样的结果。由于是对它们进行采样,因此原始时序编号可能不适用于大型查询。
但是,这些数字可用于将查询的各个部分与查询的其他部分进行比较,以确定各个部分的相对费用。