ElasticSearch-在无痛脚本过滤器中访问date_range的数组

时间:2019-07-12 22:14:32

标签: elasticsearch elasticsearch-painless

有没有办法在无痛的脚本过滤器中访问date_range数组?

我对“ blocked_dates”字段的映射如下:

"blocked_dates": {
    "type": "date_range",
    "format": "strict_date"
},

数据如下:

"blocked_dates": [
    {
        "gte": "2019-07-12",
        "lte": "2019-07-14"
    },
    {
        "gte": "2019-07-16",
        "lte": "2019-07-18"
    }
],

我正在使用Amazon ElasticSearch v6.7,所以我不能在脚本过滤器中使用params._source,如果尝试通过doc访问它,则会收到非法的参数。

"blocked_dates = doc['blocked_dates'].value; ",
"                    ^---- HERE"
  

类型为[date_range]的字段[blocked_dates]不支持字段数据

我有一个复杂的预订窗口要求,它会检查所选的入住和退房日期是否在另一笔预订的x天(禁止日期)之内,并且必须在脚本中完成。

可以做一些棘手的事情,例如将date_range数组的副本存储为以逗号分隔的字符串数组(即“ 2019-07-20,2019-09-12”)。然后从无痛脚本过滤器中获取字符串数组,并从中解析出日期。

但这是我的最后选择。

0 个答案:

没有答案