【发布时间】:2019-01-13 02:57:51
【问题描述】:
我正在尝试创建一个查询,该查询基于与 Excel 中的 SumIf 相比最佳的计算返回文档。
我的映射的一个非常简化的版本是:
{
"item": {
"properties": {
"name": {
"type": "text"
},
"data": {
"properties": {
"inventory": {
"properties": {
"locations": {
"type": "nested",
"properties": {
"state": {
"type": "keyword"
},
"amount": {
"type": "double"
}
}
},
"total": {
"type": "double"
}
}
}
}
}
}
}
}
(这些数据在真实系统中没有多大意义,但我无法发布实际映射。)
两个示例文档可能是:
{
"name": "guitar",
"data": {
"inventory": {
"locations": [
{
"state": "CA",
"amount": 200
},
{
"state": "AZ",
"amount": 100
},
{
"state": "NY",
"amount": 300
}
],
"total": 600
}
}
}
{
"name": "piano",
"data": {
"inventory": {
"locations": [
{
"state": "CA",
"amount": 200
},
{
"state": "AZ",
"amount": 100
},
{
"state": "KY",
"amount": 50
}
],
"total": 350
}
}
}
我希望能够返回一个查询,该查询返回“NY”和“CA”嵌套文档的数量总和大于 150 的文档。在示例数据的情况下,它应该同时返回文档,即使 NY 不在第一个文档中,因为 CA 本身已经是 200。
我已经阅读了 Elastic 提供的大部分聚合文档,但我一直无法找到这样做的方法。
我很想得到一些关于如何解决这个问题的建议。
【问题讨论】:
标签: elasticsearch elasticsearch-aggregation