我试图根据开始日期和结束日期之间的日期来过滤弹性搜索的结果。弹性搜索版本是1.7.6。
它给出了完全错误的结果。 我正在使用奇迹来查询索引。
架构是
"starting_on": {
"type": "date",
"format": "dateOptionalTime"
}
My query is below:--
GET XX/XX/_search
{
"_source": [
"arrivals.starting_on",
"arrivals.ending_on"
],
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"range": {
"starting_on": {
"gte" : "2017-10-14",
"format": "dateOptionalTime",
},
"ending_on": {
"lte" : "2017-10-17",
"format": "dateOptionalTime",
}
}
}
]
}
}
}
}
}
答案 0 :(得分:0)
您的range
查询错误,您不能在其中包含两个字段,而是需要进行两次range
查询,如下所示:
GET XX/XX/_search
{
"_source": [
"arrivals.starting_on",
"arrivals.ending_on"
],
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"range": {
"arrivals.starting_on": {
"gte": "2017-10-14",
"format": "dateOptionalTime"
}
}
},
{
"range": {
"arrivals.ending_on": {
"lte": "2017-10-17",
"format": "dateOptionalTime"
}
}
}
]
}
}
}
}
}