elasticsearch查询log_sync_10.1.54.22_20230509索引中@timestamp大于1,小于2的所有的数据量之和
时间: 2024-02-27 17:57:53 浏览: 78
您可以使用 Elasticsearch 的聚合功能来实现这个查询。具体步骤如下:
1. 构建查询语句,使用范围查询过滤 @timestamp 大于1,小于2的数据。
```json
{
"query": {
"bool": {
"filter": [
{
"range": {
"@timestamp": {
"gt": 1,
"lt": 2
}
}
}
]
}
}
}
```
2. 使用聚合功能,计算数据量之和。
```json
{
"query": {
"bool": {
"filter": [
{
"range": {
"@timestamp": {
"gt": 1,
"lt": 2
}
}
}
]
}
},
"aggs": {
"total": {
"sum": {
"field": "size"
}
}
}
}
```
其中,`size` 是您索引中的字段名称,可以根据实际情况修改。
3. 执行查询,并获取聚合结果。
您可以使用 Elasticsearch 提供的 REST API 或者客户端库来执行查询。执行查询后,可以获取到聚合结果,其中 `total.value` 表示数据量之和。
```json
{
"took": 10,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 10000,
"relation": "eq"
},
"max_score": 0,
"hits": [
{
"_index": "log_sync_10.1.54.22_20230509",
"_id": "1",
"_source": {
"size": 100
}
},
{
"_index": "log_sync_10.1.54.22_20230509",
"_id": "2",
"_source": {
"size": 200
}
},
...
]
},
"aggregations": {
"total": {
"value": 100000
}
}
}
```
阅读全文