El encabezado Content-Type [application / x-www-form-urlencoded] no es compatible con Elasticsearch


133

Solía ​​tener ElasticSearch 5.2, y acabo de actualizar a 6.0.

Estoy tratando de crear una plantilla de índice siguiendo la guía aquí , pero recibí un error

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

Mi consulta es

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

Respuestas:


242

Para solucionar esto, agregue la opción curl -H 'Content-Type: application/json'


Este error se debe a la estricta comprobación de tipo de contenido introducida en ElasticSearch 6.0, como se explica en esta publicación

A partir de Elasticsearch 6.0, todas las solicitudes REST que incluyen un cuerpo también deben proporcionar el tipo de contenido correcto para ese cuerpo.


Hola @sam, ¿hay alguna solución permanente para que no tenga que dar este indicador para cada solicitud?
Rupesh

1
@sam, gracias Sam, sin embargo, cuando agrego la opción curl, me da {"error": "El encabezado Content-Type [application / x-www-form-urlencoded] no es compatible", "status": 406} curl: (6) No se pudo resolver el host: aplicación
haneul kim

2
@haneulkim Si ejecuta curl en Windows, debe usar comillas dobles en lugar de comillas simples. Aquí hay un ejemplo del comando curl en Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Content-Type: application / json" -d "{\" name \ ": \" John Doe \ "}"
Kevin Le

11

La solución es agregar Content-Type: application/jsonencabezado

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

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

En Windows, cuando asigna JSON como parámetro, use solo comillas dobles. Usa el personaje de escape.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.