Массовая вставка в индекс ElasticSearch - PullRequest
0 голосов
/ 16 апреля 2019

Я использую 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.

Я не понимаю, где именно проблема, но любая справка более полезна

...