我有
类型的记录 {
"_index": "constant",
"_type": "host",
"_id": "AU7TX249tNLhGJRMfUXb",
"_score": 1,
"_source": {
"private": true,
"host-ip": "172.22.69.64",
}
}
如果我通过
查找private
和host-ip
的汇总
POST constant/host/_search
{
"query": {
"match_all": {}
},
"size": 0,
"aggs":{
"test":{
"cardinality":{
"field": "host-ip"
}
},
"test2":{
"cardinality":{
"field": "private"
}
}
}
}
我得到了结果
{
"took": 7,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 7730,
"max_score": 0,
"hits": []
},
"aggregations": {
"test": {
"value": 7860
},
"test2": {
"value": 2
}
}
}
我对上述结果的理解如下:
host
constant
类型的文档
private
有两个不同的值(这是预期的)我不明白当索引中的文档总数为7730时,如何能够获得7860个host-ip
的不同值?
我对total
中hits
的理解是否正确?
答案 0 :(得分:0)
Cardinality aggregation并不准确。正如医生所说:
单值度量标准聚合,用于计算不同值的近似计数
所以,这就是数字背后的原因。
您可以使用选项precision_threshold
来使结果更准确,但会消耗更多资源。