我在我的项目中使用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 }
}
});