弹性搜索中使用的字段聚合
Aggregation of fields in use in elastic search
我想做一个单一查询,它将告诉我映射中的哪些字段正在用于特定用户。这似乎是您应该能够使用聚合来完成的事情,但我对如何做一无所知。
因此,如果我的映射包含 user
、field1
、field2
和 field3
。我想知道其中哪些实际出现在给定用户的文档中。我原以为用户 x
.
在 12 个文档中使用 field1
,在 20 个文档中使用 field2
,在 5 个文档中使用 field3
如果我很好地理解了需求,应该这样做:
{
"size": 0,
"query": {
"term": {
"user": {
"value": "x"
}
}
},
"aggs": {
"field1_count": {
"filter": {
"exists": {
"field": "field1"
}
}
},
"field2_count": {
"filter": {
"exists": {
"field": "field2"
}
}
},
"field3_count": {
"filter": {
"exists": {
"field": "field3"
}
}
}
}
}
我想做一个单一查询,它将告诉我映射中的哪些字段正在用于特定用户。这似乎是您应该能够使用聚合来完成的事情,但我对如何做一无所知。
因此,如果我的映射包含 user
、field1
、field2
和 field3
。我想知道其中哪些实际出现在给定用户的文档中。我原以为用户 x
.
field1
,在 20 个文档中使用 field2
,在 5 个文档中使用 field3
如果我很好地理解了需求,应该这样做:
{
"size": 0,
"query": {
"term": {
"user": {
"value": "x"
}
}
},
"aggs": {
"field1_count": {
"filter": {
"exists": {
"field": "field1"
}
}
},
"field2_count": {
"filter": {
"exists": {
"field": "field2"
}
}
},
"field3_count": {
"filter": {
"exists": {
"field": "field3"
}
}
}
}
}