我正在使用以下术语的查询。 它检查日期是否在范围
之间{
"bool": {
"must": [
{
"range": {
"start_date": {
"lt": "2017-09-13"
}
}
},
{
"range": {
"end_date": {
"gt": "2017-09-13"
}
}
}
]
}
}
有没有办法在一个range
中实现此目的,而不是使用两个不同的range
术语和must
。
例如像这样的东西
{
"range": {
"2017-09-13": {
"gt": "start_date",
"lt": "end_date"
}
}
}
还是有其他方法可以做到这一点
答案 0 :(得分:1)
由于您要在两个不同的字段上添加约束,因此需要两个range
个查询。
如果你真的想要一个没有bool/must
的单个查询,你最终可以使用query_string
查询,条件如下:
{
"query": {
"query_string": {
"query": "start_date:<2017-09-13 AND end_date:>2017-09-13"
}
}
}