我正试着开始和盆景赛跑。我打算使用sinatra和ruby(不是rails),尽管现在我只是试图从我的本地机器连接。脚本是:
require "csv"
require "elasticsearch"
require 'elasticsearch/transport'
Elasticsearch::Model.client = Elasticsearch::Client.new url: 'https://uz09z96il1:5g9p3h8jow@hectors-first-starte-5298580603.us-west-2.bonsai.io', log: true
#Elasticsearch::Client.new host: 'https://uz09z96il1:5g9p3h8jow@hectors-first-starte-5298580603.us-west-2.bonsai.io', log: true
#Elasticsearch::Model.client = Elasticsearch::Client.new('https://uz09z96il1:5g9p3h8jow@hectors-first-starte-5298580603.us-west-2.bonsai.io')
#client = Elasticsearch::Client.new log: true
#Elasticsearch::Model.client = Elasticsearch::Client.new url: 'https://uz09z96il1:5g9p3h8jow@hectors-first-starte-5298580603.us-west-2.bonsai.io', log: true
CSV.open("candidates.csv", "r") do |f|
f.each_with_index do |item, i|
next if i == 0
p item
client.index index: 'data', type: 'person', body: '{
"first": "#{item[1]}",
"last": "#{item[2]}"
}'
end
end
基本错误是连接被拒绝,在这个特殊的例子中,如下所示:
uninitialized constant Elasticsearch::Model (NameError)
正如您所看到的,从注释掉的行中,我已经尝试了我能想到的尽可能多的变化。
实现这一点的最好方法是什么?所有的帮助我都感激不尽,谢谢。
uninitialized constant Elasticsearch::Model (NameError)
,因为您没有包含适当的类。尝试添加:
require 'elasticsearch/model'