1
我有一個聚合查詢,根據數值數組字段中的值將我的數據合併到直方圖桶中。該陣列幾乎總是有長度1,但我不能保證它。 在數組的字段上像這樣裝箱時,預期的行爲是什麼。Elasticsearch在聚合數值數組字段時的預期行爲
我明白,如果這個查詢是必須的,我們可能不得不修改模式,但仍然想了解彈性在這裏的表現如何。
實例文檔:
{
"begin": "100",
"total": 20,
"fractions": [ 10 ]
}
例子查詢:
GET /index-2/_search
{
"size": 10,
"aggs": {
"buckets": {
"histogram": {
"field": "begin",
"interval": 1000
},
"aggs": {
"fractions": {
"histogram": {
"field": "fractions",
"interval": 10
}
}
"totals": {
"histogram": {
"field": "totals",
"interval": 10
}
}
}
}
}
}
我在4至5萬份文檔運行此查詢時,沒有錯誤。以下示例響應代碼片段:
"aggregations": {
"buckets": {
"buckets": [
{
"key": 0,
"doc_count": 1235,
"fractions": {
"buckets": [
{
"key": 0,
"doc_count": 402
},
{
"key": 10,
"doc_count": 176
},
...
{
"key": 480,
"doc_count": 0
},
{
"key": 490,
"doc_count": 1
}
]
},
"totals": {
"buckets": [
{
"key": 0,
"doc_count": 271
},
{
"key": 10,
"doc_count": 117
},
...
{
"key": 550,
"doc_count": 0
},
{
"key": 560,
"doc_count": 1
}
]
}
},
...
謝謝安德烈。如果我希望我的聚合只考慮數組中的第一個值,那麼可以在不更改模式的情況下進行聚合嗎? – Andrew
我發現我可以使用腳本限制到數組的第一項。而不是 '「field」:「分數」,''你可以使用''script「:」doc ['fractions'] [0]「, – Andrew