批量插入ElasticSearch索引

时间:2019-04-16 15:21:05

标签: node.js elasticsearch mongoose mongoosastic

我正在使用Mongoosastic的Mongoose插件,该插件可以自动将您的模型索引到elasticsearch中。

需要从excel文件中读取数据,然后将数据上传到MongoDB并同时上传到ElasticSearch Index。

一切正常,但是,当excel文件中的数据超过200个时,例如300个。将总共300个对象的数据插入到MongoDB中,但是在ElasticSearch索引上仅插入200个记录。

要使用Mongoose InsertMany函数插入此数据,则该函数将按Mongoosastic中提到的那样完全触发弹性搜索簇。

var schema = mongoose.Schema({
       question: {
            type: String ,
            required: true,
            text: true,
            index: true,
            es_type:"text",
            es_analyzer: "faq_standard"
        },
        keyword: [{
            type: String ,
            required: false,
            index: true,
            default: [""],
            es_type:"text",es_analyzer: "faq_standard"
        }],
        answer: {
            type: String ,
            required: true,
            text: true,
            es_type:"text", es_analyzer: "faq_standard"
        },
        }
);
schema.plugin(mongoosastic, {
    esClient: getElasticInstance()
});

以上是我的模型定义,并使用了Elasticsearch客户实例。

对于插入数据,我使用了Mongoose ODM的InsertMany()函数。 下面是我的函数,该函数具有用于保存json数据的关键有效负载。

let err, data;
  [err, data]=await to(Faq.insertMany(payload.content));
  if(err) TE(err, true);
  if(data) return data;

如果要插入的数据小于200,则将数据插入ES索引。但是,当数据超过该数据的一部分时,几乎会插入200-210。

我不知道确切的问题出在哪里,但是任何帮助都更有用

0 个答案:

没有答案