elasticsearch 是一個基于 lucene 的分布式搜索引擎,能夠快速的存儲、搜索和分析大量的數(shù)據(jù)。在 es 中,數(shù)據(jù)以文檔(document)的形式存儲,并可以使用 RESTful API 進行操作。而在 es 中,我們可以使用多種方式將數(shù)據(jù)導入到數(shù)據(jù)庫中,其中 json 是比較常用的一種形式。下面我們將演示如何使用 json 導入數(shù)據(jù)到 es 中。
// 首先,我們需要安裝 elasticsearch 的客戶端工具 npm install elasticsearch // 然后,在項目中引入 elasticsearch const { Client } = require('@elastic/elasticsearch'); const client = new Client({ node: 'http://localhost:9200' }); // 創(chuàng)建一個新的 index client.indices.create({ index: 'my-index' }, (err, res) =>{ if (err) console.error(err); else console.log(res.body); }); // 創(chuàng)建一個 json 文件,將要導入的數(shù)據(jù)寫入到該文件中 { "index": { "_index": "my-index", "_id": "1" } } { "name": "Tom", "age": 20, "address": "北京市海淀區(qū)", "tags": ["reading", "traveling"] } // 使用 fs 模塊讀取該 json 文件,并將數(shù)據(jù)導入到 es 中 const fs = require('fs'); const readline = require('readline'); const rl = readline.createInterface({ input: fs.createReadStream('data.json') }); rl.on('line', (line) =>{ client.bulk({ body: JSON.parse(line) }, (err, res) =>{ if (err) console.error(err); else console.log(res.body); }); });
在上述代碼中,我們首先使用 npm 安裝了 elasticsearch 的客戶端工具,然后引入 elasticsearch,創(chuàng)建了一個新的 index,并使用 fs 模塊讀取了要導入的數(shù)據(jù)文件。 我們使用 readline 逐行讀取數(shù)據(jù),并使用 client.bulk 方法將數(shù)據(jù)導入到 es 中。導入數(shù)據(jù)的 body 部分使用 JSON.parse 方法將 json 字符串轉換成 es 接受的數(shù)據(jù)格式。最后,我們通過控制臺輸出了導入后的結果。
上一篇mysql初始密碼不顯示
下一篇mysql初學教程