我有存储在 ES 中的产品,我正在尝试按它们的大小聚合它们。我想设计以下行为。对于甚至在查询之外的每个术语,都可以根据查询接收术语计数。
所以查询尺寸 ["S", "M"] 我想收到:
小号:1
米:1
大号:0
这有可能吗?
这是我的设置,我得到以下结果:
小号:1
米:1
但是L完全不见了。
PUT demo
{
"mappings": {
"product": {
"properties": {
"size": {
"type": "keyword"
}
}
}
}
}
PUT demo/product/1
{
"size": "S"
}
PUT demo/product/2
{
"size": "M"
}
PUT demo/product/3
{
"size": "L"
}
GET demo/_search
{
"size": 0,
"query": {
"bool": {
"must": [
{
"terms": {
"size": [
"S",
"M"
]
}
}
]
}
},
"aggs": {
"size": {
"terms": {
"field": "size"
}
}
}
}