我正在试着开始和盆景打交道。我打算使用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)
正如您所看到的,从注释掉的行中,我已经尝试了我能想到的尽可能多的变体。
实现这一目标的最佳方法是什么?非常感谢大家的帮助,谢谢。
发布于 2015-06-07 13:08:13
你将会得到
uninitialized constant Elasticsearch::Model (NameError)
因为您没有包含适当的类。尝试添加:
require 'elasticsearch/model'
在代码的顶部。
https://stackoverflow.com/questions/30632721
复制相似问题