我尝试在将json数据上传到elasticsearch之前创建映射。 在sails.js
中上传json数据之前,我不知道如何实现映射这是我的bulkupload代码段
var body = [];
//row is json data
rows.forEach(function(row, id) {
body.push({ index: { _index: 'testindex', _type: 'testtype', _id: (id+1) } });
body.push(row);
})
client.bulk({
body: body
}, function (err, resp) {
if (err)
{
console.log(err);
return;
}
else
{
console.log("All Is Well");
}
});
我想在数据上传之前创建映射。任何人都知道如何在帆中创建映射。
我的Json对象
[ { Name: 'paranthn', Age: '43', Address: 'trichy' },
{ Name: 'Arthick', Age: '23', Address: 'trichy' },
{ Name: 'vel', Age: '24', Address: 'trichy' } ]
答案 0 :(得分:2)
在进行client.bulk()
来电之前,首先需要进行另一次client.indices.putMapping()
这样的通话,以便为您要通过bulk
电话发送的数据保存正确的映射:
client.indices.putMapping({
"index": "testindex",
"type": "testtype",
"body": {
"testtype": {
"properties": {
"your_int_field": {
"type": "integer"
},
"your_string_field": {
"type": "string"
},
"your_double_field": {
"type": "double"
},
// your other fields
}
}
}
}, function (err, response) {
// from this point on, if you don't get any error, you may call bulk.
});
请记住,所有这些调用都是异步的,因此请务必仅在bulk
成功返回后调用putMapping
。
答案 1 :(得分:1)
听起来你需要PutMapping。