const elasticsearch = require('elasticsearch'); const fs = require('fs'); const readline = require('readline'); const client = new elasticsearch.Client({ hosts: [ 'http://localhost:9200'] }); client.indices.create({ index: 'skweb' }, function(error, response, status) { if (error) { console.log(error); } else { console.log("created a new index", response); } }); const bulkIndex = function bulkIndex(index, type, data) { let bulkBody = []; id = 1; const errorCount = 0; data.forEach(item => { bulkBody.push({ index: { _index: index, _type: type, _id : id++, } }); bulkBody.push(item); }); console.log(bulkBody); client.bulk({body: bulkBody}) .then(response => { response.items.forEach(item => { if (item.index && item.index.error) { console.log(++errorCount, item.index.error); } }); console.log( `Successfully indexed ${data.length - errorCount} out of ${data.length} items` ); }) .catch(console.err); }; async function indexData() { let documents = []; const readInterface = readline.createInterface({ input: fs.createReadStream('/home/elastic/BP/skweb/server/text.txt'), // output: process.stdout, console: false }); readInterface.on('line', function(line) { const article = JSON.parse(line); documents.push(article); }); readInterface.on('close', function() { console.log(documents); bulkIndex('skweb', 'web_page', documents); }); } indexData();