我有一个预订'存储项目已保留的日期数组的字段。
示例数据:
{
reservations: [ "05/03/2015",
"05/04/2015",
"05/05/2015",
"05/18/2015",
"05/19/2015"
]
}
我想在弹性搜索中搜索日期范围,并返回所有不包含这些日期的日期的项目。
所以我有一个startDate
和endDate
参数来搜索。但是,elasticsearch的日期范围过滤器不符合此要求。我可以用其他方式做到这一点吗?
修改
我认为日期范围过滤器不起作用,因为您只能将startDate
和endDate
与gte
或lt
比较为右侧的一个值。我基本上在左边(开始/结束日期范围)有一堆日期需要检查,右边有多个日期(多个预订日期)。
答案 0 :(得分:0)
使用嵌套对象可以解决此问题。将保留作为嵌套对象转换为主文档,而范围查询将起作用。
实施例
{
reservation : [
{"thedate" : "2015-01-01"},
{"thedate" : "2015-03-12"},
...
]
}