我一直在尝试将各种格式的数据发送到计算机上运行的ElasticSearch。
我正在运行Ubuntu 17(最新版本),但我无法这样做。
以下是我在终端上使用的命令:
curl -X POST 'http://localhost:9200/json/test/2' -d @json.json
我在文件所在的正确目录中。这是我得到的错误:
{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
我在网上搜索无济于事。
我做错了什么?
答案 0 :(得分:8)
您可以这样做:
curl -XPUT 'localhost:9200/twitter/tweet/1?pretty' -H 'Content-Type: application/json' -d'
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
'
您的请求未通过的原因,因为您没有将Content-Type指定为JSON。另外,你应该使用PUT而不是POST :)我从这个文档复制了这个请求:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html。欢呼声。
答案 1 :(得分:2)
您看到的错误是由于Elastic Search版本不同。在-XPUT
之前,添加-H 'Content-Type: application/json'
这里是一个例子:
curl -H 'Content-Type: application/json' -XPUT 127.0.0.1:9200/