Заголовок Content-Type [application/x-www-form-urlencoded] не поддерживается в Elasticsearch

Раньше у меня был ElasticSearch 5.2 и просто обновлялся до 6.0.

Я пытаюсь создать шаблон индекса после руководства здесь, но получил ошибку

Content-Type header [application/x-www-form-urlencoded] is not supported

Мой запрос

curl -X PUT localhost:9200/_template/template_1 -d '
{
  "index_patterns": ["te*", "bar*"],
  "mappings": {
    "type1": {
      "properties": {
        "host_name": {
          "type": "keyword"
        }
      }
    }
  }
}'

Ответ 1

Чтобы исправить это, добавьте параметр curl -H 'Content-Type: application/json'


Эта ошибка возникает из-за строгой проверки типа содержимого, представленной в ElasticSearch 6.0, как объясняется в этом сообщении

Начиная с Elasticsearch 6.0, все запросы REST, которые включают тело, также должны содержать правильный тип контента для этого тела.

Ответ 2

Решение состоит в том, чтобы добавить Content-Type: application/json header

curl -XPUT 'localhost:9200/_template/template_1' \
  -H 'Content-Type: application/json' \
  -d '**your query**'