Header Jenis-Konten [aplikasi / x-www-form-urlencoded] tidak didukung di Elasticsearch

134

Saya dulu menggunakan ElasticSearch 5.2, dan baru saja ditingkatkan ke 6.0.

Saya mencoba membuat templat panduan indeks berikut di sini , tetapi mendapat kesalahan

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

Kueri saya adalah

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

Jawaban:

243

Untuk memperbaiki ini, tambahkan opsi keriting -H 'Content-Type: application/json'


Kesalahan ini disebabkan oleh pemeriksaan tipe konten yang ketat yang diperkenalkan di ElasticSearch 6.0, seperti yang dijelaskan dalam posting ini

Mulai dari Elasticsearch 6.0, semua permintaan REST yang menyertakan badan juga harus memberikan tipe konten yang benar untuk badan itu.

kgf3JfUtW
sumber
Hai @sam, Apakah ada solusi permanen sehingga saya tidak perlu memberikan tanda ini untuk setiap permintaan.
Rupesh
1
@sam, terima kasih sam, tetapi ketika saya menambahkan opsi curl, ia memberi saya {"error": "Header Jenis-Konten [aplikasi / x-www-form-urlencoded] tidak didukung", "status": 406} curl: (6) Tidak dapat menyelesaikan host: aplikasi
haneul kim
2
@haneulkim Jika menjalankan curl pada Windows, Anda harus menggunakan karakter kutipan ganda alih-alih kutipan tunggal. Berikut adalah contoh perintah curl pada Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Content-Type: application / json" -d "{\" name \ ": \" John Doe \ "}"
Kevin Le
11

Solusinya adalah menambahkan Content-Type: application/jsonheader

curl -XPUT 'localhost:9200/_template/template_1' \
  -H 'Content-Type: application/json' \
  -d '**your query**'
Z.LI
sumber
-1
"{ \"name\": { \"first\": {} }, \"address\": [ { \"address1\":\"lane\" } ] } "

Di Windows, ketika Anda memberikan JSON sebagai parameter, gunakan hanya tanda kutip ganda. Gunakan karakter pelarian.

charlie9526
sumber