让我们以数据结构的形式来考虑文档,如下所示:
[{
"id": "57b4b3b9-4574-4be3-a8cc-e45c90bc8273",
"events": [{
"id": "6517011a-563d-4b36-ac72-44700e943e5e",
"date_start": "2018-08-20",
"date_end": "2018-08-25"
},{
"id": "ee1ab8e5-3ff8-4623-8771-2a69e5c8a757",
"date_start": "2018-08-26",
"date_end": "2018-08-30"
}]
},{
"id": "21e72eb0-2e5c-41ad-a5e0-cb934cb163a1",
"events": [{
"id": "5f4f841a-5fba-442e-895f-ebace3aa1c8e",
"date_start": "2018-08-20",
"date_end": "2018-08-23"
}]
}]
是否可以使用弹性搜索查询过滤出所有具有obj.events.date_start <= now
和obj.events.date_end >= now
的对象,但以下面显示的形式返回数据?假设now
的值等于“ 2018-08-23”。
[{
"id": "57b4b3b9-4574-4be3-a8cc-e45c90bc8273",
"events": ["6517011a-563d-4b36-ac72-44700e943e5e"]
},{
"id": "21e72eb0-2e5c-41ad-a5e0-cb934cb163a1",
"events": ["5f4f841a-5fba-442e-895f-ebace3aa1c8e"]
}]
此刻,我使用ElasticSearch查询执行过滤,然后在Python函数中修改数据结构。