Запрос Elasticsearch выдает ошибку при использовании диапазона с bool - PullRequest
1 голос
/ 07 января 2020

Я запрашиваю elasti c поиск с использованием status field и range, но получаю ошибку:

"type": "parsing_exception", "reason": "запрос [status] неверно сформирован, без имени_запуска после имени запроса "

Запрос выглядит следующим образом:

{
  "_source": {
    "includes": []
  },
  "query": {
    "bool": {
      "must": [
        {
            "status": "IN_PROGRESS"
        },
        {
          "range": {
            "requestDate": {
              "gte": "2018-10-01T08:00:00.000Z",
            }
          }
        }
      ]
    }
  },
  "sort": {
    "requestDate": {
      "order": "desc"
    }
  }
}

1 Ответ

2 голосов
/ 07 января 2020

Ошибка в том, что вы не указали тип запроса - термин или соответствие - в поле состояния. Поэтому, если статус представляет собой текстовый тип данных, вы должны выполнить запрос на совпадение:

{
  "_source": {
    "includes": []
  },
  "query": {
    "bool": {
      "must": [
        {
          "match":{            "status": "IN_PROGRESS"
        }},
        {
          "range": {
            "requestDate": {
              "gte": "2018-10-01T08:00:00.000Z",
            }
          }
        }
      ]
    }
  },
  "sort": {
    "requestDate": {
      "order": "desc"
    }
  }

}
...