【问题标题】:Data not being delete from elasticsearch index via mongoosastic?没有通过 mongoosastic 从弹性搜索索引中删除数据?
【发布时间】:2015-12-13 11:19:50
【问题描述】:

我在 MEAN 堆栈程序中有 mongoosastic 设置。一切正常,除了当我从 mongodb 中删除一个文档时,它不会在弹性搜索索引中删除。因此,每次我进行包含删除项目的搜索时,都会返回已删除的项目,但在水合时为空。 mongoosastic 是否处理从 ES 索引中删除?我必须对索引刷新进行编程吗?

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);
  }
});

【问题讨论】:

  • 自发布以来,您对此有什么好运吗?我也有同样的问题。

标签: mongodb express elasticsearch mongoosastic


【解决方案1】:

我不知道您使用的是哪个版本的 mongoosastic,但我使用的是 mongoosastic@3.6.0,每当我使用 Model.findByIdAndRemoveModel.remove 删除它时,我的索引文档就会被删除。因此,请尝试交叉检查您删除文档的方式。

【讨论】:

    【解决方案2】:

    我通过更改删除数据的方式解决了这个问题。

    我正在使用:

      Quantum.findByIdAndRemove(quantumid)
    

    我把它改成:

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

    我没有研究这个工作的原因,但它解决了问题,我继续前进。

    【讨论】:

      【解决方案3】:

      我有同样的错误。如果您查看Documentation,它表明您必须在删除文档后显式删除它。 这就是我现在删除的方式。

      const deleteOne = Model => async (id)=> {
      const document = await Model.findByIdAndDelete(id);
      
      if (!document) {
          return new Result()
          .setSuccess(false)
          .setError('Unable to delete Entity with ID: ' + id + '.')
      }
      //this ensures the deletion from the elasticsearch index
      document.remove();
      return new Result()
      .setSuccess(true)
      .setData(document)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-23
        • 1970-01-01
        • 1970-01-01
        • 2018-08-20
        • 2016-01-30
        • 2016-03-14
        • 1970-01-01
        • 2016-06-08
        相关资源
        最近更新 更多