【问题标题】:Elastic Search with Mongoose - Embedded Schema使用 Mongoose 进行弹性搜索 - 嵌入式模式
【发布时间】:2016-06-18 02:38:17
【问题描述】:

我有以下猫鼬模式:

var ReviewSchema = new Schema({
    title: String,
    details: String,
    user: {type: ObjectId, ref:'User'},
});

var SubjectSchema = new Schema({
    name: {type: String, required: true},
    website: {type: String, index: { unique: true }},
    review: {type: [ReviewSchema], es_indexed:true}
});

我有另一个 User 架构,在 Review 中引用。

我尝试了mongoosastic 插件,但找不到索引引用架构的方法。我想索引评论用户的姓名。所以我只是为此使用了弹性搜索客户端。

每次创建/更新/删除评论时,我都会在数据库中查找并使用从数据库中检索到的值更新弹性搜索索引。更新嵌入式架构时,是否有更好的方法来更新索引?谢谢

【问题讨论】:

  • 在这种情况下,我使用嵌入文档。您可以嵌入用户架构来查看架构。用户:{类型:用户,必需:真}。或者您只能将用户的用户名插入到 ReviewSchema 的用户字段中。如果需要获取用户的详细信息,可以通过用户名信息获取。

标签: node.js mongoose elasticsearch


【解决方案1】:

这可以使用mongoosastic 完成,在Mongoose 中的mongoosastic 中有一个类似Mongoose 的选项,您可以使用它来索引猫鼬引用。

ReviewSchema.plugin(mongoosastic, {
  populate: [
    {path: 'User', select: 'name'}
  ]
})

您可以在文档here 中找到更多信息。

【讨论】:

  • 还值得指出的是,在 mongoose 模型定义中您需要 es_schema 和可能的 es_select
猜你喜欢
  • 2021-08-01
  • 1970-01-01
  • 2019-12-05
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多