在我的数据表中,我有一个开始日期列和结束日期列。我需要在开始和结束日期之间过滤掉表中的数据。使用这个post,我能够编写过滤谓词。但它只过滤确切的开始日期和确切的结束日期。 API以字符串格式返回日期,如“2018-08-30”。那么,如何过滤掉开始日期和结束日期之间的数据呢?
首先,您需要在查询中添加Range过滤器或Range必须在所需日期之间获取结果集。获得正确的结果集后,您可以根据需要聚合和过滤数据。
POST _search
{
"query": {
"bool": {
"filter": [
{
"range": {
"endDate": {
"gte": "2018-07-30",
"format": "yyyy-MM-dd"
}
}
},
{
"range": {
"startDate": {
"lte": "2018-08-30",
"format": "yyyy-MM-dd"
}
}
}
]
}
}
}
希望这能解决你的问题。