Elasticsearch API聚合查询-笔记

项目需求:需要过滤后聚合某些没有分词的字段

注意:因为项目字段都是string 所以这里都是Terms Aggregation


# 基本字段查询 query_string针对的是没有分词的字段,time对应是每秒的时间戳
{
	"query":{
        "query_string":{
            "query":"time:[1491987322 TO 1491988222] AND types:[6 TO 7] AND citys:广州"
            }
    }    
}

# data_histogram_time 间隔时间聚合查询 
# 这里是针对查询出来的结果进行间隔时间段的聚合
# field 聚合字段 interval 时间间隔区间 time_zone 时区(一开始没设置慢了8小时) format输出的格式
{
    "query":{
        "query_string":{
            "query":"time:[1492012800 TO 1492082307] AND types:[1 TO 2] "
        }
    },
    "aggs":{
        "data_histogram_time":{
            "date_histogram":{
                "field":"time",
                "interval":"1h",
                "time_zone":"+08:00",
                "format":"MM/dd-HH:mm"
            },
            "aggs":{
                "all_types":{
                    "terms":{
                        "field":"types"
                    }
                }
            }
        }    
       }
}


# 聚合分析多个字段
# 主要针对一个API 返回多个统计维度的聚合字段
{
    "query":{
        "query_string":{
            "query":"time:[1492963200 TO 1493024521] AND types:[1 TO 5]"
        }
    },
    "aggs":{
    	"citys":{
    		"terms":{
    			"field": "position",
    			"size":"5"
    		}
    	},
    	"operators":{
    		"terms":{
    			"field": "operator",
    			"size":"5"

    		}
    	}
    }
}


# 嵌套集合多个字段
# 先聚合position,再聚合position下的type,可以层层嵌套
{
    "query":{
        "query_string":{
            "query":"time:[1491987322 TO 1492052831] AND types:[1 TO 5]"
        }
    },
    "aggs":{
    	"citys":{
    		"terms":{
    			"field":"position",
    			"size":100
    		},
    		"aggs":{
    			"types":{
    				"terms":{
    					"field":"types"
    				}
    			}
    		}
    	}
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值