私は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"
}
}
}
}
}'
これを修正するには、curlオプション-H 'Content-Type: application/json'
を追加してください。
この投稿 で説明されているように、このエラーは 厳密なコンテンツタイプチェック がElasticSearch 6.0で導入されたためです。
Elasticsearch 6.0以降、ボディを含むすべてのRESTリクエストでも、そのボディの正しいコンテンツタイプを指定する必要があります。
解決策はContent-Type: application/json
ヘッダーを追加することです
curl -XPUT 'localhost:9200/_template/template_1' \
-H 'Content-Type: application/json' \
-d '**your query**'