Заголовок типу вмісту [додаток / x-www-form-urlencoded] не підтримується в Elasticsearch


134

У мене раніше був 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"
        }
      }
    }
  }
}'

Відповіді:


243

Щоб виправити це, додайте варіант завитка -H 'Content-Type: application/json'


Ця помилка пояснюється суворою перевіркою типу вмісту, запровадженою в ElasticSearch 6.0, як пояснено у цій публікації

Починаючи з Elasticsearch 6.0, усі запити REST, що включають тіло, також повинні надавати правильний тип вмісту для цього органу.


Привіт @sam, чи є постійне рішення, щоб мені не потрібно було давати цей прапор для кожного запиту.
Рупеш

1
@sam дякую Сам, однак, коли я додаю варіант curl, він дає мені {"error": "Заголовок Content-Type [application / x-www-form-urlencoded] не підтримується", "status": 406} curl: (6) Не вдалося вирішити хост: 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 як параметр, використовуйте лише подвійні лапки. Використовуйте символ втечі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.