【发布时间】:2020-06-12 13:52:06
【问题描述】:
在 Elasticsearch 中,假设我有这样的文档:
{
"id": "testId",
"inputs": [
{
"status": "STARTED",
"lastUpdatedTime": "2020-06-10T00:00:00.000Z"
},
{
"status": "STARTED",
"lastUpdatedTime": "2020-05-11T00:00:00.000Z"
},
{
"status": "ENDED",
"lastUpdatedTime": "2020-06-11T00:00:00.000Z"
}
]
}
现在,我想过滤所有文档,以便获得所有状态为 ENDED 的文档,并且 lastUpdatedTime 应该在输入数组中最高。例如。在上述情况下,它将将此文档返回为 2020-06-11T00:00:00.000Z > 2020-06-10T00:00:00.000Z 和 2020-05-11T00:00:00.000Z 并且状态为 ENDED。但是说,对于下面的文件,它不会返回:
{
"id": "testId2",
"inputs": [
{
"status": "STARTED",
"lastUpdatedTime": "2020-06-10T00:00:00.000Z"
},
{
"status": "STARTED",
"lastUpdatedTime": "2020-05-11T00:00:00.000Z"
},
{
"status": "ENDED",
"lastUpdatedTime": "2020-05-11T00:00:00.000Z"
}
]
}
这是因为在此文档中 STARTED 具有最大的 lastUpdatedTime。我怎样才能在 Elasticsearch 中轻松地进行这种过滤,或者不可能?
【问题讨论】:
标签: elasticsearch elasticsearch-dsl