ElasticSearch java api实现 聚合+去重查询,获取去重后明细数据

先说下业务场景,在我们的业务中,分析存在ES中的数据,需要获取到一定数据量的去重明细数据,例如,我们想要查看某一批设备的属性信息,分析设备属性是否存在某些一致性特征,这种情况下,我们就需要获取到这些设备属性的去重数据,因为重复的设备信息对我们没有意义。

我在网上找到很多的聚合去重查询,但是大部分都是restful api实现,而且大部分都是去重查询数量,查明细数据的例子很少。

基于restful api的实现很容易,只要拼装出相应的聚合查询json数据结构,设置好聚合、排序、数量限制等条件,即可完成去重明细查询,例如:

{
	"query": {
		"bool": {
			"must": [],
			"must_not": [],
			"should": ["deviceId-1", "deviceId-2", "deviceId-3"]
		}
	},
	"from": 0,
	"size": 0,
	"sort": [],
	"aggs": {
		"device_aggs": {
			"cardinality": {
				"field": "deviceId"
			}
		},
		"target": {
			"terms": {
				"field": "deviceId",
				"size": 1000
			},
			"aggs": {
				"rated": {
					"top_hits": {
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值