Elasticsearch 计数数组中的元素,对于具有值的 属性
Elasticsearch count elements in array, for a property having a value
我有一个结构如下的文档:
{
"products": [
{
"variants": [
{
"type": "type_1"
},
{
"type": "type_2"
}
]
}
]
}
"variants"为动态映射。我想计算具有特定类型的变体。如果我使用术语聚合,它将 return 所有类型的桶键及其各自的文档计数,但我希望我传递的类型出现在桶键及其各自的文档计数中。
或者他们有什么方法可以只计算变体而不是文档,并获取类型作为键和值作为计数的桶
有人可以帮我查询吗?
我用脚本解决了。
{
"aggs": {
"agg_terms_types": {
"terms": {
"script": {
"source": "params.selected_types",
"params": {
"selected_types": [
"type_1"
]
}
}
}
}
}
}
我有一个结构如下的文档:
{
"products": [
{
"variants": [
{
"type": "type_1"
},
{
"type": "type_2"
}
]
}
]
}
"variants"为动态映射。我想计算具有特定类型的变体。如果我使用术语聚合,它将 return 所有类型的桶键及其各自的文档计数,但我希望我传递的类型出现在桶键及其各自的文档计数中。
或者他们有什么方法可以只计算变体而不是文档,并获取类型作为键和值作为计数的桶
有人可以帮我查询吗?
我用脚本解决了。
{
"aggs": {
"agg_terms_types": {
"terms": {
"script": {
"source": "params.selected_types",
"params": {
"selected_types": [
"type_1"
]
}
}
}
}
}
}