web-dev-qa-db-ja.com

ElasticSearch - Content-Typeヘッダー[application/x-www-form-urlencoded]はサポートされていません

私はElasticSearch 5.2を使用していましたが、6.0にアップグレードしました。

Guide here に従ってインデックステンプレートを作成しようとしていますが、エラーが発生しました

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"
        }
      }
    }
  }
}'
81
Barry Leishman

これを修正するには、curlオプション-H 'Content-Type: application/json'を追加してください。


この投稿 で説明されているように、このエラーは 厳密なコンテンツタイプチェック がElasticSearch 6.0で導入されたためです。

Elasticsearch 6.0以降、ボディを含むすべてのRESTリクエストでも、そのボディの正しいコンテンツタイプを指定する必要があります。

152
sam

解決策はContent-Type: application/jsonヘッダーを追加することです

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