You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch搜索返回可用过滤器及MongoDB Schema调整咨询

Elasticsearch搜索实现与MongoDB Schema优化咨询

我是Elasticsearch新手,在查询实现上需要帮助,同时想确认我的MongoDB Schema是否需要调整。

我希望实现这样的Elasticsearch搜索功能:根据查询条件返回匹配的可用产品,同时返回可用于后续筛选的可用过滤器,期望的返回格式如下:

{
  "products": [{...}, {...}, ...],
  "filters": [ ... ]
}

现有MongoDB Schema

Product Schema

{
  "title": "...",
  "description": "...",
  "categoryId": ObjectId,
  "variants": [ variant1ID, variant2ID ],
  ... // 其他字段
}

Variant Schema

{
  "product": ObjectId,
  "image": "...",
  "price": ..., 
  "attributes": [
    "SIZE-XL", // 注:这些是facetId,我可以把它们转换为 {name:"SIZE", value:"XL"} 格式
    "COLOR-BLUE",
    .... // 其他属性
  ]
}

我的思考与Elasticsearch存储方案设想

最初我打算基于类别获取过滤器,因为每个类别有固定的facet,但后来意识到搜索查询不一定局限于特定类别。

我设想将数据按以下格式存入Elasticsearch:每个变体作为单独的文档存储,并附带所属产品的标题和描述,以此提升搜索速度和便捷性:

{ 
  "productId": "...",
  "title": "...",
  "description": "...",
  "categoryId": "....",
  "image": "...",
  "variantId": "...",
  "price": "...",
  "attributes": [
    {
      "name": "SIZE",
      "value": "XL"
    },
    {
      "name": "COLOR",
      "value": "BLUE"
    },
    .... // 其他属性
  ]
}

现想咨询:

  • 这个Elasticsearch存储方案是否可行?
  • 我的MongoDB Schema是否需要调整?

内容的提问来源于stack exchange,提问作者Abdul Kabeer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:35:29