我有一個嵌套架構的映射,我打算在嵌套字段上進行聚合,並通過docid計數進行排序。Elasticsearch嵌套基數聚合
select name, count(distinct docid) as uniqueid from table
group by name
order by uniqueid desc
以上是我想要做的。
{
"size": 0,
"aggs": {
"samples": {
"nested": {
"path": "sample"
},
"aggs": {
"sample": {
"terms": {
"field": "sample.name",
"order": {
"DocCounts": "desc"
}
},
"aggs": {
"DocCounts": {
"cardinality": {
"field": "docid"
}
}
}
}
}
}
}
}
但結果我沒有得到預期的輸出
結果:
"buckets": [
{
"key": "xxxxx",
"doc_count": 173256,
"DocCounts": {
"value": 0
}
},
{
"key": "yyyyy",
"doc_count": 63,
"DocCounts": {
"value": 0
}
}
]
我收到DocCounts = 0
。這不是預期的。我的查詢出了什麼問題。
這將返回錯誤。可能在這裏找到兩個聚合類型定義。我已經試過了 – Backtrack
有沒有可能''field「:」sample.docid「'可以解決你的問題? – core
我不這麼認爲 – Backtrack