代码之家  ›  专栏  ›  技术社区  ›  Alien13

AWS使用特定标记(列表中的字符串值)查找数据点的最有效方法

  •  0
  • Alien13  · 技术社区  · 3 年前

    我有一个关于AWS的新手问题。假设我经营一家商店,提供1.000.000种不同的产品。每个产品在dynamoDB中都有自己的行,在一个名为 products ['football', 'outdoor', 'sport' ... ] ,这样当客户搜索 sport 带有该标签的产品将显示在结果中。

    备选案文1: tags 获取标签列表的每个产品的字段。

    'product_3' -> ['football', 'outdoor', 'sport']

    备选案文2: 创建一个新表,其中 key 产品

    'sport' -> ['product_1', product_3, ... ]

    我倾向于和你一起去 选择2

    如果有一个能够与之协同工作的基础设施,那将是一件非常棒的事情 word2vec 因此,与搜索词相关的产品也会显示出来,即使它们不是相同的字符串值。

    0 回复  |  直到 3 年前
        1
  •  2
  •   JaredHatfield    3 年前

    DynamoDB是一个功能强大且非常有用的数据库,但它不是为搜索而设计的。我的建议是为这项工作使用正确的工具。

    我多次成功使用的模式是使用DynamoDB流和Lambda将表复制到Elasticsearch索引。

    然后,您可以在DynamoDB中的每个项目上拥有该字符串集的标记,并对其进行管理。当您知道可以对DynamoDB执行项哈希键时,您的名义读取。当你想搜索时,点击Elasticsearch,获得它为搜索提供的所有好处和灵活性。与DynamoDB的API相比,其中一个好处是分页非常好,并且能够基于其他属性进行排序。