阅读了关于murmur3的文档,https://www.elastic.co/guide/e ... .html
文中提到,在high cardinality 的时候,适合使用,可以提高计算速度。
文章结尾又不推荐在 numeric和string 字段使用,说大概率重复率高,占用很大的磁盘空间
那么什么字段什么场景适用murmur3使用。
服务器上当前es版本为5.2,针对imei字段进行cardinality操作,聚合后进行cardinality 执行时间大概在8s左右,比较慢
求教如何提高cardinality性能,或者下面的语句有优化空间么?
{
"size": 0,
"query": {
"bool": {
"filter": [
{
"terms":{
"cpbinfo":["1500多个参数,多的可以2000"]
}
},
{
"range": {
"timestamp": {
"gte": 1531065600000,
"lte": 1531756799000,
"format": "epoch_millis"
}
}
}
]
}
},
"aggs": {
"cpbinfoGroup":{
"terms":{
"field": "cpbinfo",
"size": 1460
},
"aggs":{
"uptimeSum":{
"sum":{
"field": "upDurMillis"
}
},
"imeiNum":{
"cardinality":{ -- 这里很慢
"field":"imei",
"precision_threshold": 100 -- 这里没什么显著效果
}
}
}
}
}
}
还望赐教
文中提到,在high cardinality 的时候,适合使用,可以提高计算速度。
文章结尾又不推荐在 numeric和string 字段使用,说大概率重复率高,占用很大的磁盘空间
那么什么字段什么场景适用murmur3使用。
服务器上当前es版本为5.2,针对imei字段进行cardinality操作,聚合后进行cardinality 执行时间大概在8s左右,比较慢
求教如何提高cardinality性能,或者下面的语句有优化空间么?
{
"size": 0,
"query": {
"bool": {
"filter": [
{
"terms":{
"cpbinfo":["1500多个参数,多的可以2000"]
}
},
{
"range": {
"timestamp": {
"gte": 1531065600000,
"lte": 1531756799000,
"format": "epoch_millis"
}
}
}
]
}
},
"aggs": {
"cpbinfoGroup":{
"terms":{
"field": "cpbinfo",
"size": 1460
},
"aggs":{
"uptimeSum":{
"sum":{
"field": "upDurMillis"
}
},
"imeiNum":{
"cardinality":{ -- 这里很慢
"field":"imei",
"precision_threshold": 100 -- 这里没什么显著效果
}
}
}
}
}
}
还望赐教
1 个回复
BBao
赞同来自: