如何在弹性搜索中更改mongodb中字段的新值的索引?

时间:2019-04-11 13:38:30

标签: mongodb elasticsearch mongoose

我在我的项目中使用MongoDB,弹性搜索和node.js。我的项目中有一个附件模型,其中每个文档都有一个fileName字段,用于存储附件的名称,并且我在弹性搜索中使用mongoosastic在“ fileName”字段中创建索引。成功上传文件后,用户可以搜索给出附件名称的附件,并且可以正常工作,但是当用户更改附件名称时(如在我的项目中一样),任何用户都可以更改他们拥有的文件的附件名称已上传。 因此,更改名称后,如果用户使用新名称搜索附件,则不会显示任何输出? 谁能告诉我如何使用mongoosastic在弹性搜索中重新索引新名称?下面是弹性搜索查询和附件模型架构

attachmentModel.Attachment.search({
            "match_phrase_prefix": {
                "fileName": name
            }
        }, (err, result) => {
            if (err) {
                reject(err);
            } else {
                resolve(result.hits.hits);
            }
        })

const attachmentSchema =  Schema ({
    createdAt : { type: Date },
    updatedAt : { type : Date},
    createdBy : { type : Schema.Types.ObjectId , ref : 'User'},
    updatedBy : { type : Schema.Types.ObjectId , ref : 'User'},
    type : { type : String , enum : ["Image","Video","Other","Youtube"]},
    fileName : { type :String,es_index:true},
    fileURL : { type :String},
    fileThumbURL : { type: String},
    metadata : {
        type : { type : String},
        size : { type: Number},
        duration : { type : Schema.Types.Decimal128 }
    }
});

0 个答案:

没有答案