我有这个查询。
{
"filter": {
"bool": {
"must": [
{
"term": {
"active": 1
}
}
],
"should": [
{
"range": {
"datum": {
"lt": "17/08/16",
"format": "dd/MM/yyyy"
}
}
}
]
},
"sort": {
"datum": "asc"
}
}
}
它给了我
无法解析搜索源。预期的字段名称但得到了 [START_OBJECT]“}]
这是第一个问题。然后我需要在事件中搜索,并且只查找将来或正在进行的事件。
活动有2个日期。
Datum =事件的开始
Datum_to =事件结束(如果为空,则基准也是结束日期)
答案 0 :(得分:1)
您使用的是哪个版本的Elasticsearch?
从版本2.0开始,不再有顶级filter
子句。查询和过滤器已合并为一个,请参阅Breaking changes。
要搜索未来开始或尚未完成的事件,两个should
条款应该可以解决问题,例如:
{
"query": {
"bool": {
"should": [
{
"range": {
"Datum": {
"gt": "now"
}
}
},
{
"range": {
"Datum_to": {
"gt": "now"
}
}
}
]
}
}
}