Elasticsearch/OpensSearch 查询产品变体

问题描述 投票:0回答:1

我正在使用 AWS OpenSearch 数据库,它是 Elasticsearch 的一个分支。我的用例如下:

  • 产品包含 ID、标题、品牌、productGroupId
  • 查询:给定一个字符串,查找标题或品牌与该字符串匹配的所有产品。对于每个返回的产品,请包含一个
    variations
    字段,该字段是同一 ProductGroupId 中所有其他产品的 ID 列表

我目前的想法是我将分两步执行查询:

  • 按标题和品牌查询所有产品
  • 对于每个产品,通过其productGroupId进行查询以填充
    variations
    字段(可以进行一些优化以最大程度地减少productGroupId查找次数,但这不是重点)

您对如何设计搜索索引或我可以用来提高效率的一些查询有什么建议吗?

elasticsearch elasticsearch-aggregation opensearch amazon-opensearch
1个回答
0
投票

我建议您创建两个索引。一个将保留所有与产品相关的详细信息,另一个将跟踪给定

product
的所有
productGroupId
变体。这些索引的文件将具有以下结构。

产品

{
  id: "",
  name: "",
  brand: "",
  productGroupId: ""
}

产品组变体

{ 
  id: "" //productGroupId,
  variations: [] // list of product ID's
}

使用此结构,当获取

product
时,您可以再次调用
variations
索引来获取
productGroupVariations

此外,每当添加、更新或删除

variations
时,请确保更新
product
数组。

© www.soinside.com 2019 - 2024. All rights reserved.