Elasticsearch-脚本按日期字段排序,并按特定输入日期升序

时间:2019-06-18 12:06:39

标签: elasticsearch

让我们假设我有这种文件(事件):

[
    {
        "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字段进行排序吗?

顺便说一句:索引将仅包含数千个事件。

更新:

经过一些研究,似乎如果不使用嵌套对象而不是数组就无法做到这一点。如果我错了,请纠正我,我宁愿在嵌套类型上使用简单的日期数组...

0 个答案:

没有答案