O cabeçalho do tipo de conteúdo [application / x-www-form-urlencoded] não é suportado no Elasticsearch


133

Eu costumava ter o ElasticSearch 5.2 e atualizei para 6.0.

Estou tentando criar um modelo de índice seguindo o guia aqui , mas ocorreu um erro

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

Minha consulta é

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

Respostas:


242

Para corrigir isso, adicione a opção curl -H 'Content-Type: application/json'


Esse erro ocorre devido à verificação rigorosa do tipo de conteúdo introduzida no ElasticSearch 6.0, conforme explicado nesta postagem

A partir do Elasticsearch 6.0, todas as solicitações REST que incluem um corpo também devem fornecer o tipo de conteúdo correto para esse corpo.


Oi @ sam, Existe alguma solução permanente para que eu não precise dar esse sinalizador para cada solicitação.
Rupesh

1
@ sam sam, porém, quando adiciono a opção curl, ele me fornece {"error": "O cabeçalho do tipo de conteúdo [application / x-www-form-urlencoded] não é suportado", "status": 406} curl: (6) Não foi possível resolver o host: application
haneul kim 23/10/19

2
@haneulkim Se estiver executando o curl no Windows, você precisará usar aspas duplas em vez de aspas simples. Aqui está um exemplo de comando curl no Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Tipo de conteúdo: application / json" -d "{\" name \ ": \" John Doe \ "}"
Kevin Le

11

A solução é adicionar Content-Type: application/jsoncabeçalho

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

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

No Windows, quando você fornece JSON como parâmetro, use apenas aspas duplas. Use caractere de escape.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.