我正在使用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。
我不知道确切的问题出在哪里,但是任何帮助都更有用