使用ruby gem和sinatra和ruby(不是rails),我如何连接到一个盆景elasticsearch实例



我正试着开始和盆景赛跑。我打算使用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'

最新更新