当前位置: 首页 > 知识库问答 >
问题:

数据未通过Mongoostic从elasticsearch索引中删除?

卫才哲
2023-03-14

我在平均堆栈程序中设置了Mongoostic。除了我从mongodb中删除一个文档外,其他一切都正常工作,它不会在elasticsearch索引中删除。因此,每次我进行包含删除项目的搜索时,都会返回已删除的项目,但当它水合时为空。Mongoostic是否处理从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);
  }
});

共有3个答案

孟韬
2023-03-14

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

我正在使用:

  Quantum.findByIdAndRemove(quantumid)

我切换到:

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

            return;
         }                
       });
   });

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

米裕
2023-03-14

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

子车安和
2023-03-14

我有同样的错误。如果您查看文档,它会指出您必须在删除文档后显式删除文档。这就是我现在进行删除的方式。

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)
}
 类似资料:
  • 问题内容: 我有一个包含多个重复条目的索引。它们具有不同的ID,但其他字段具有相同的内容。 例如: 删除重复项后: 有没有一种方法可以删除所有重复项并仅保留一个不同的条目,而无需手动比较所有条目? 问题答案: 我使用rails,如有必要,我将使用命令导入内容,该命令将删除并重新索引该索引和类型的所有内容……但是不确定您在哪个环境中运行ES。我只能看到的问题是数据源是否您正在从中导入(即数据库)的记

  • 我想从elasticsearch索引中删除一些数据,而不是完整的索引,我的问题是如何找到所有可用碎片的文档id。对此的查询是什么?? 我使用了以下查询来删除特定文档,但它抛出错误,所以我认为我的文档ID是错误的。请让我知道如何获取可用分片的正确文档ID。 我的数据流是postgresql到logstash到elasticsearch到kibana。但问题是索引大小正在增加很多,它进入GB的内存,而

  • 我试图通过Head插件删除一些elasticsearch索引。为此,我在URL旁边添加了索引名,如http://localhost:9200/Index名称和在任何请求选项卡下选择的删除。但是我得到了一个错误,如下所示。谁能帮忙吗。

  • 问题内容: 我的许多日志都以logstash-Year- Week格式编制索引。那就是如果我想删除超过几周的索引,如何在elasticsearch中实现。有没有简单,无缝的方法可以做到这一点? 问题答案: 策展人将是这里的理想之选。您可以在这里找到链接-https: //github.com/elastic/curator 如下所示的命令应该可以正常工作- 您可以将其保留在CRON中,以偶尔删除索

  • 问题内容: 我是ElasticSearch的新手。我试图弄清楚如何从ElasticSearch中删除数据。我已删除索引。但是,这似乎并没有真正删除数据本身。我看到的其他内容指向“ 按查询删除”功能。但是,我什至不知道要查询什么。我知道我的索引。本质上,我想弄清楚如何做 来自Chrome中的PostMan。但是,我没有任何运气。看来,无论我做什么,数据都会徘徊。到目前为止,我已经通过在PostMan

  • 我很难理解ElasticSearch中标记器和分析器的可能性。 假设有一组产品的索引数据。每个产品都有一个带说明文本的字段。在描述中,一种颜色被命名。 是否可以使用内置的分析器或自定义的标记器/分析器来提取颜色信息(例如,基于一组关键字[红、绿、蓝、黄等]),并将新的颜色信息作为一个单独的字段附加到产品上? 这将是一个很好的功能,可以用通用属性(如颜色、材质等)来增加传入数据