使用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}
任何想法的家伙?我是在尝试不可能还是以错误的方式行事?像往常一样,所有的帮助都非常感激。