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


135

Раньше у меня был 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"
        }
      }
    }
  }
}'

Ответы:


244

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


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

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


Привет @sam! Есть ли постоянное решение, чтобы мне не приходилось указывать этот флаг для каждого запроса.
Rupesh

1
@sam благодарит Сэма, однако, когда я добавляю параметр curl, я получаю {"error": "Content-Type header [application / x-www-form-urlencoded] не поддерживается", "status": 406} curl: (6) Не удалось разрешить host: application
haneul kim

2
@haneulkim Если вы запускаете curl в Windows, вам нужно использовать двойные кавычки вместо одинарных. Вот пример команды curl в Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Content-Type: application / json" -d "{\" name \ ": \" John Doe \ "}"
Кевин Ле

11

Решение - добавить Content-Type: application/jsonзаголовок

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

-1
"{ \"name\": { \"first\": {} }, \"address\": [ { \"address1\":\"lane\" } ] } "

В Windows, когда вы указываете JSON в качестве параметра, используйте только двойные кавычки. Используйте escape-символ.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.