tta-elastic/scripts/latest-dataset-for-es/upload.js

39 lines
923 B
JavaScript

require('dotenv').config();
const { Client } = require('elasticsearch');
const client = new Client({ host: process.env.SEARCHBOX_URL });
const preparePayload = tweets => {
const payload = [];
tweets.forEach(tweet => {
payload.push({
index: {
_index: 'tweets',
_type: 'document',
_id: tweet.id,
},
});
payload.push(tweet);
});
return { body: payload };
};
const upload = tweets => {
return new Promise(function (resolve, reject) {
const mapped = preparePayload(tweets);
client.bulk(mapped, (error, response) => {
if (error) {
reject(error);
} else if (response && response.errors) {
reject('error in response, run with debugger to view');
} else {
console.log(`successfully uploaded in ${response.took}ms`); // eslint-disable-line no-console
resolve();
}
});
});
};
module.exports = upload;