我有一个“预订”字段,它存储一个项目已保留的日期数组。
样本数据:
{
reservations: [ "05/03/2015",
"05/04/2015",
"05/05/2015",
"05/18/2015",
"05/19/2015"
]
}
我想在弹性搜索中搜索一个日期范围,并返回所有不包含这些日期上的日期的项目。
所以我有一个startDate
和endDate
参数要搜索。但是,elasticsearch的日期范围筛选器将不符合这一要求。我能用别的方法吗?
编辑:
我认为日期范围筛选器无法工作,因为您只能将startDate
和endDate
与gte
或lt
进行比较,而右边只有一个值。基本上,我在左边有一堆日期(开始/结束日期范围),我需要对照这些日期,在右边有很多日期(多个预订日期)。
发布于 2016-02-03 19:41:24
这个问题可以通过使用嵌套对象来解决。将保留作为嵌套对象转换为主文档,然后使用范围查询。
示例
{
reservation : [
{"thedate" : "2015-01-01"},
{"thedate" : "2015-03-12"},
...
]
}
https://stackoverflow.com/questions/31180914
复制