Я использую Mongoosastic плагин mongoose, который может автоматически индексировать ваши модели вasticsearch.
Требуется чтение данных из файла excel и загрузка данных в MongoDB и одновременно в ElasticSearch Index.
Все работает отлично, но, когда данные из файла Excel превышают более 200, скажем, 300. Всего в MongoDB вставлено 300 данных, но в индекс ElasticSearch вставлено только 200 записей.
Чтобы вставить этоЯ использую функцию Mongoose InsertMany, которая defulat запускает кластерasticsearch, как упомянуто в 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.
Для вставкиДанные, я использовал функцию InsertMany () Mongoose ODM.Ниже была моя функция с ключевой полезной нагрузкой, которая содержит данные 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.
Я не понимаю, где именно проблема, но любая справка более полезна