【问题标题】:DynamoDB: Table Schema fot text searchingDynamoDB:用于文本搜索的表架构
【发布时间】:2013-10-08 12:28:28
【问题描述】:

我将一些数据从 MySQL 移动到 DynamoDB。现在我在模式设计上遇到了一个问题,以满足我的所有需求。我在 MySQL 中的表有这样的架构:

userid - int
datetimemillis - int
typeid - int
string1 - string
string2 - string
string3 - string
string4 - string

主键是用 userid 和 datetimemillis 构建的

我需要做这样的查询:

  1. 检索特定用户 ID 的每一行
  2. 检索特定用户 ID 和类型 ID 的每一行
  3. 检索 string1-4 包含特定字符串的特定 userid 和 typeid 的每一行

我能够使用 userId 作为 hashkey,typeId 作为本地二级索引进行 1. 和 2. 查询(删除具有特定 userid 的所有记录需要范围键)。有没有什么选项可以在不使用扫描的情况下进行第三次查询?我的可能性是什么?使用云搜索?还是其他亚马逊服务?如果我需要更改我的架构,请告诉我。价格无关紧要,它必须有效,即使我必须使用 50 个额外的服务和 dynamodb 表。

【问题讨论】:

    标签: mysql amazon-web-services amazon-dynamodb


    【解决方案1】:

    如果您尝试使用 String1-4 进行精确字符串匹配,您可以使用更多本地二级索引。 DynamoDB 最多支持 5 个本地二级索引。

    但是(我认为这就是您想要的)如果您尝试在其中一个字符串中搜索特定包含,我会使用 solr 之类的东西来索引所有这些字符串及其在 solr 中的相应 userId 和交叉引用使用 dynamodb 用户表中的 HashKey 进行 solr 搜索的结果集中的 userId。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2012-11-08
      • 2015-08-29
      • 2012-10-19
      • 2020-04-13
      • 1970-01-01
      相关资源
      最近更新 更多