curl -s -XPOST localhost:9200/_bulk --data-binary @filename.json
我正在看RestClient宝石,无法弄清楚如何做到这一点。我需要这个来向elasticsearch发出批量请求。
答案 0 :(得分:3)
您可以使用标准库(没有任何其他宝石)执行此操作:
require 'uri'
require 'net/http'
uri = URI.parse('http://localhost:9200/_bulk')
data = File.read('filename.json')
http = Net::HTTP.new(uri.host, uri.port)
response, body = http.post(url.path, data, {'Content-type'=>'text/xml; charset=utf-8'})
答案 1 :(得分:3)
使用rest-client
RestClient.post 'localhost:9200/_bulk', File.new("filename.json", 'rb'), 'Content-type' => 'application/x-www-form-urlencoded'
不确定rest-client
是否会自动设置content-type
,只需在没有它的情况下进行检查。