2015-09-16 10 views
5

Ho una configurazione mongoosastic all'interno di un programma stack MEAN. Tutto funziona correttamente tranne quando cancello un documento da mongodb non è cancellato nell'indice elasticsearch. Pertanto, ogni volta che eseguo una ricerca che include elementi di eliminazione, l'elemento eliminato viene restituito, ma è nullo quando viene idratato. Mongoosastic gestisce l'eliminazione dall'indice ES? Devo programmare un aggiornamento dell'indice?I dati non vengono eliminati dall'indice elasticsearch tramite mongoosastic?

var mongoose = require('mongoose'); 
var mongoosastic = require("mongoosastic"); 
var Schema = mongoose.Schema; 

var quantumSchema = new mongoose.Schema({ 
    note: { 
     type: String, 
     require: true, 
     es_indexed: true 
    }   
}); 

quantumSchema.plugin(mongoosastic); 

var Quantum = mongoose.model('Quantum', quantumSchema); 

Quantum.createMapping(function(err, mapping){ 
    if(err){ 
    console.log('error creating mapping (you can safely ignore this)'); 
    console.log(err); 
    }else{ 
    console.log('mapping created!'); 
    console.log(mapping); 
    } 
}); 
+0

Hai avuto fortuna con questo da quando hai pubblicato? Sto avendo lo stesso problema. –

risposta

0

Ho risolto il problema cambiando il modo in cui elimino i dati.

usavo:

Quantum.findByIdAndRemove(quantumid) 

ho acceso a:

Quantum.findById(quantumid, function(err, quantum) { 
     quantum.remove(function(err, quantum) { 
     if (err) { 
      console.log(err); 

      return; 
     }     
     }); 
    }); 

non ho ricerco la ragione di questo lavoro, ma ha risolto il problema e sono passato.

0

Non so quale versione di mongoosastic utilizzi ma uso [email protected] e il mio documento indicizzato viene eliminato ogni volta che lo rimuovo utilizzando Model.findByIdAndRemove o Model.remove. Quindi prova a controllare il modo in cui elimini i documenti.

Problemi correlati