仅导入特定字段 - Elasticsearch批量导入

时间:2018-03-08 06:38:53

标签: node.js elasticsearch

elasticsearch 中执行bulk导入时,我们是否可以 忽略JSON转储中的某些JSON密钥

我目前正在使用Node JS。如下面的代码所述,data.json包含我希望JSON keys在导入时忽略的某些elasticsearch。这些键可以是任何类型,例如Object,字符串,布尔值等。

var bulkIndex = function bulkIndex(index, type, data) {
    let bulkBody = [];

    data.forEach(item => {
        bulkBody.push({
            index: {
                _index: index,
                _type: type,
                _id: item.id
            }
        });

        bulkBody.push(item);
    });

    esClient.bulk({
            body: bulkBody
        })
        .then(response => {
            let errorCount = 0;
            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);
};
const test = function test() {
    const rawJSON = fs.readFileSync('data.json');
    const processedJSON = JSON.parse(rawJSON);
    console.log(`${processedJSON.length} items parsed from data file`);
    bulkIndex('myIndex', 'myType', processedJSON);
};
test();

1 个答案:

答案 0 :(得分:0)

您可以使用remove处理器

设置摄取管道