0
我按offerId
分組,每個桶有兩個桶:price <=0
和price > 0
。我需要確保price <= 0
包括文檔,其中price
場丟失:如何在範圍聚合中設置缺失字段的值?
{
"size": 0,
"aggs": {
"by_offer_id": {
"terms": {
"field": "offerId"
},
"aggs": {
"by_price": {
"range": {
"field": "price",
"ranges": [
{
"to": 0
},
{
"from": 0
}
]
},
"aggs": {
"price_stats": {
"stats": {
"field": "price"
}
}
}
}
}
}
}
}
我已經試過"field": "price",
後加入"missing": 0
,但它拋出SearchPhaseExecutionException
。
我使用的是1.7.5
,但可能會使用2.4.x
的語法。
你需要在'stats'集合中放置''missing':0'而不是'range'。但ES1.7中缺少'missing',至少需要ES 2.0。 – Val
@Val看起來不支持1.7,但我肯定會嘗試2.4 – gskema
也許可以使用子聚合:https://www.elastic.co/guide/en/elasticsearch/reference/1.7/ search-aggregations-bucket-missing-aggregation.html? – gskema