Tiêu đề loại nội dung [application / x-www-form-urlencoding] không được hỗ trợ trên Elaticsearch


133

Tôi đã từng sử dụng tính năng Tìm kiếm đàn hồi 5.2 và chỉ cần nâng cấp lên 6.0.

Tôi đang cố gắng tạo một mẫu chỉ mục theo hướng dẫn ở đây , nhưng đã gặp lỗi

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

Truy vấn của tôi là

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

Câu trả lời:


242

Để khắc phục điều này, thêm tùy chọn curl -H 'Content-Type: application/json'


Lỗi này là do kiểm tra loại nội dung nghiêm ngặt được giới thiệu trong ElasticSearch 6.0, như được giải thích trong bài đăng này

Bắt đầu từ Elaticsearch 6.0, tất cả các yêu cầu REST bao gồm một phần thân cũng phải cung cấp loại nội dung chính xác cho phần thân đó.


Xin chào @sam, Có giải pháp lâu dài nào để tôi không phải đưa cờ này cho mỗi yêu cầu.
Rupesh

1
@sam cảm ơn sam tuy nhiên khi tôi thêm tùy chọn curl, nó sẽ cho tôi {"error": "Tiêu đề loại nội dung [application / x-www-form-urlencoding] không được hỗ trợ", "status": 406} curl: (6) Không thể giải quyết máy chủ: ứng dụng
haneul kim

2
@haneulkim Nếu chạy curl trên Windows, bạn cần sử dụng ký tự trích dẫn kép thay vì trích dẫn đơn. Dưới đây là ví dụ lệnh curl trên Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Content-Type: application / json" -d "{\" name \ ": \" John Doe \ "}"
Kevin Le

11

Giải pháp là thêm Content-Type: application/jsontiêu đề

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

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

Trong Windows, khi bạn cung cấp JSON làm tham số, chỉ sử dụng dấu ngoặc kép. Sử dụng ký tự thoát.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.