elasticsearch,Ruby,Curl,elasticsearch" /> elasticsearch,Ruby,Curl,elasticsearch" />

使用ruby,如何将csv文件中的数据加载到elasticsearch索引中?

使用ruby,如何将csv文件中的数据加载到elasticsearch索引中?,ruby,curl,elasticsearch,Ruby,Curl,elasticsearch,我想将csv文件中的数据加载到弹性搜索索引中。我没有使用EleasticSearchGem(现在),只是一个简单的ruby脚本。这是: CSV.open("candidates.csv", "r").each do |row| #file = "candidates.csv" #file_data = file.read #csv_rows = CSV.parse(file_data, headers: true, header_converters: :symbol) #c

我想将csv文件中的数据加载到弹性搜索索引中。我没有使用EleasticSearchGem(现在),只是一个简单的ruby脚本。这是:

CSV.open("candidates.csv", "r").each do |row| 
  #file = "candidates.csv"
  #file_data = file.read
  #csv_rows  = CSV.parse(file_data, headers: true, header_converters: :symbol)
  #csv_rows.each do |row| 
  curl -XPOST "http://localhost:9200/candidates/candidate" -d '
    {
     "first"   => row[:first],
     "last"   => row[:last],
     "designation"   => row[:designation],
     "company"   => row[:company],
     "city" => row[:city],
     "country" => row[:country],
     "email"   => row[:email],
     "phone"   => row[:phone],
     "experience"   => row[:experience]  
   }'
错误消息是:

load.rb:6: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
这种方法是否完全错误,即将“curl”请求粘贴到ruby脚本的中间

做这件事的最佳方法是什么?如何才能做到最好


一如既往,非常感谢

curl
命令是shell命令吗?然后,您应该在命令周围加上反勾号或使用
system
。(X和POST之间不应该有空格吗?)我丢失了这样的行:%Total%已收到%Xferd平均速度时间当前数据加载上载总花费的左速度100 548 100 235 100 313 228 303 0:00:01 0:00:01--::--303但索引中没有实体,仍然不太清楚。是的,需要回勾,但X和POST之间没有空格。