如何从postgresdb中选择数据并插入到elasticsearch索引中?

时间:2014-05-28 17:15:49

标签: ruby postgresql elasticsearch sinatra

使用sinatra,postgres和elasticsearch gem,我想从数据库中选择数据,在运行中将其转换为json,然后将其放入弹性搜索索引,即创建一个包含刚刚选择的记录的索引。

红宝石代码是:

get '/send_data_to_elastic' do
 result = DB[:candidates].map do |r|
  { :first => r[:first], :last => r[:last], :email => r[:email], :company => r[:company] }
end
 client = Elasticsearch::Client.new log: true
 #client.delete  index: 'mycandidates', type: 'mykind', id: 3
 #client.index  index: 'candidates', type: 'mykind', id: 12, body: {data:'data'}
 client.index  index: 'candidates', type: 'mykind', id: 12, body: result.to_json
end

这不起作用,我收到以下错误:

Elasticsearch::Transport::Transport::Errors::BadRequest at /send_data_to_elastic
[400] {"error":"MapperParsingException[failed to parse]; nested: ElasticSearchParseException[Failed to derive xcontent from (offset=0, length=4): [110, 117, 108, 108]]; ","status":400}

任何想法的家伙?我是在尝试不可能还是以错误的方式行事?像往常一样,所有的帮助都非常感激。

0 个答案:

没有答案