让我们假设我有这种文件(事件):
[
{
"title": "Foo",
"dates": [
"2019-07-01",
"2019-07-15",
"2019-08-01"
]
},
{
"title": "Bar",
"dates": [
"2019-07-18"
]
}
]
我想执行查找在给定日期范围内发生的所有事件的搜索,因此我搜索在7月10日(2019年7月10日)至8月10日(2019年10月10日)之间发生的所有事件08-10)。
查询不会是问题,但是如果我想按升序显示事件(因此“ Foo”事件被排在前面,因为7月15日早于18日)-我如何正确地对事件进行排序? / p>
我考虑过使用脚本对文档进行排序,可能是通过过滤日期,以便仅保留有效日期,然后使用第一个日期值中的时间戳进行简单的数字排序。但是我将如何通过脚本过滤日期?
我可以使用“脚本字段”并传递我的fromDate和toDate来将过滤后的日期复制到一个新字段(让我们说有效日期)并使用THAT字段进行排序吗?
顺便说一句:索引将仅包含数千个事件。
更新:
经过一些研究,似乎如果不使用嵌套对象而不是数组就无法做到这一点。如果我错了,请纠正我,我宁愿在嵌套类型上使用简单的日期数组...