проблема с запросом эластичного поиска, неверный запрос диапазона, ожидаемый END_OBJECT, но найденный FIELD_NAME - PullRequest
0 голосов
/ 13 октября 2019

Я не могу понять, что не так с этим запросом. И «диапазон», и «существует» работают независимо, но вместе я получаю parsing expection и range malformed query, expected END_OBJECT but found FIELD_NAME. Может кто-нибудь выяснить, что не так с этим запросом?

{
"query": {
  "range":{
     "@timestamp":{
        "gte":"2019-08-04T11:00:00",
        "lt":"2019-10-04T12:00:00"
     }
  },
  "exists": {
      "field": "params.zone"
  }  

},
"_source": ["@timestamp", "params.zone"]
}

1 Ответ

0 голосов
/ 13 октября 2019

Если вы хотите объединить несколько запросов, как вы делаете с range и exists, вам нужно использовать bool query и решить, какие из ваших предложений являются обязательными (must), необязательными(should), фильтр (filter) или не должен быть представлен в результатах (must_not)

Запрос, который будет работать, может выглядеть следующим образом (в этом примере вы обязательны)):

{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "@timestamp": {
              "gte": "2019-08-04T11:00:00",
              "lt": "2019-10-04T12:00:00"
            }
          }
        },
        {
          "exists": {
            "field": "params.zone"
          }
        }
      ]
    }
  },
  "_source": [
    "@timestamp",
    "params.zone"
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...