0
假设我有一个存储人的物理属性的映射,并且该映射中的一个字段是用户标识。例如:如何在elasticsearch中通过基数来计算元素?
"attributes": {
"hair_color": {
"type": "string"
},
"eyes_color": {
"type": "string"
},
"height": {
"type": "float"
},
"user_id": {
"type": "integer"
}
}
我想做一个查询,将返回有多少人有给定的眼睛颜色。例如,它会返回类似于“绿色”的东西:962.
我认为我需要做的是eye_color字段的术语桶,然后考虑user_id的基数子聚合,但我没有'到目前为止成功。这是我有:
{
"aggs" : {
"eyes_color_bucket" : {
"terms" : {
"field" : "eyes_color"
}
},
"aggs":{
"count":{
"cardinality":{
"field": "eyes_color_bucket"
}
}
}
}
哪个当然失败。任何帮助赞赏。
不会doc_count为任何关键会给人数?或者我错过了什么? – Richa
是的,仅当每个'user_id' /'eyes_color'对只有一个文档时。人们可以想象如果他们考虑使用镜头,则为每个人存储多种眼睛颜色。不太可能,但可能。 – Val
thnx的解释。 – Richa