我是 Elasticsearch 的新手,我正在使用 Java High Level Rest Client。 我有内部包含数组的文档,并且我想要索引中所有文档中特定字段的数组大小的总和,但我不知道该怎么做。 我的文件示例: { 名称:'abc', 姓氏:'def', 书籍:[ { 第一本书 },{第二本书},{第三本书} ] } 我需要所有文档中“书籍”字段大小的总和。
最佳答案
您可以使用scripted_metric为此进行聚合
查询:
GET index31/_search
{
"size": 0,
"aggs": {
"doc_length": {
"scripted_metric": {
"init_script": {
"source": "state.commits = []"
},
"map_script": {
"source": "state.commits.add(doc['books'].length)"
},
"combine_script": {
"source": "def sum = 0.0; for (c in state.commits) { sum += c } return sum"
},
"reduce_script": {
"source": "def sum = 0.0; for (a in states) { sum += a } return sum"
}
}
}
}
}
关于java - Elasticsearch,文档中数组大小的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58476847/