将JSON / XML / TXT / CSV文件发送到ElasticSearch

时间:2017-06-09 08:55:48

标签: json http ubuntu curl elasticsearch

我一直在尝试将各种格式的数据发送到计算机上运行的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}

我在网上搜索无济于事。

我做错了什么?

2 个答案:

答案 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/