2

私はmongoosasticによってmongodbエラスティックを使用します。

私の問題は、コレクションのインデックスを作成するときです。Mongoosastic はコレクションの一部のみをインデックスに登録します (たとえば、私のコレクションには 50,000 のドキュメントがありますが、mongoosastic はそのうちの 3000 のみをインデックスに登録します)。

このコードを使用して、ドキュメントとインデックスを生成します。

var post, 
    count = 0,
    countes = 0;
for (i = 0; i < 50000; i++) {
    post = new BlogPost(req.body)
    post.save(function() {
            count++;
            console.log(count + "\n")
            //res.redirect('/');
            post.on('es-indexed', function() {
              countes++;
              console.log('document' + countes + ' indexed');
            });
    });
4

1 に答える 1

0

なぜあなたが使用しているのかについて少し混乱していますが、req.bodyあなたがやろうとしていることは次のとおりです。

var stream = BlogPost.synchronize();
var count = 0;

stream.on('data', function(err, doc){
    count++;
});

stream.on('close', function(){
    console.log('indexed ' + count + ' documents!');
    cb(null, 'indexed ' + count + ' documents');
});

stream.on('error', function(err){
    console.log(err);
    cb(err, null);
});

これにより、既存のBlogPostコレクションが処理され、それらすべてにインデックスが付けられます。

于 2015-12-01T15:56:05.533 に答える