elasticsearch无痛组合聚合密钥及其嵌套聚合密钥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch无痛组合聚合密钥及其嵌套聚合密钥相关的知识,希望对你有一定的参考价值。
处理elasticsearch查询结果的转换
{
'key': factoryA,
'buckets': [
{
'key': 'productX'
}
]
},
{
'key': factoryB,
'buckets': [
{
'key': 'productX'
},
{
'key': 'productY'
}
]
}
我想要一个列表,其项目是工厂聚合和嵌套聚合产品的组合:
[
{'factory': 'factoryA', 'product': 'productX'},
{'factory': 'factoryB', 'product': 'productX'},
{'factory': 'factoryB', 'product': 'productY'},
]
关于无痛脚本的任何建议?先感谢您。或者我可以在任何地方找到无痛的综合指南。没有Doc的无痛是完全痛苦的。
答案
我认为以下查询是您正在寻找的:
询问
POST <your_index_name>/_search
{
"size":0,
"aggs":{
"myagg":{
"terms":{
"script":{
"source":"'factory: ' + doc['factory.keyword'].value + params.param + 'product: ' + doc['product.keyword'].value",
"lang":"painless",
"params":{
"param":", "
}
},
"order":{
"_term":"asc"
}
}
}
}
}
查询响应
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0,
"hits": []
},
"aggregations": {
"myagg": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "factory: factory A, product: product A",
"doc_count": 1
},
{
"key": "factory: factory B, product: product B",
"doc_count": 1
}
]
}
}
}
注意,我假设factory
和product
这两个字段都是keyword
类型
如果有帮助,请告诉我!
以上是关于elasticsearch无痛组合聚合密钥及其嵌套聚合密钥的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch - 计算嵌套聚合相对于父存储桶的百分比
Elasticsearch学习之嵌套聚合,下钻分析,聚合分析
如何在elasticsearch的嵌套聚合中存储空字段和非空字段?