Cloudsearch日期的范围查询

时间:2019-02-26 02:48:57

标签: amazon-dynamodb aws-sdk amazon-cloudsearch

我有一个dynamodb表,该表以字符串格式存储creation_date纪元。此日期既不是哈希键,也不是排序键。最终目标是查询creation_date的范围,即我需要给定时间范围内的所有ID。

表架构为: ID,版本,creation_date,信息。

id是哈希键,版本是排序键。

我当时正在考虑创建一个cloudsearch域并将其链接到dynamodb表。如果日期为字符串格式,是否可以在使用Java的cloudsearch中使用范围查询?如果是,怎么办?

1 个答案:

答案 0 :(得分:0)

您可以在DynamoDB中使用哈希键为creation_y_m且GSI范围键为creation_date的GSI来完成此操作。

在查询创建日期范围时,需要进行一些日期操作以找出两个日期之间的所有月份,但是您可以使用诸如以下的关键条件表达式查询GSI这个。

creation_y_m = 2019-02 AND creation_date BETWEEN 2019-02-05T12:00.00Z AND 2019-02-18T06:00:00Z

鉴于大多数查询都是两周的查询范围,因此通常只需要进行一两个查询就可以获取所有项目。

您可能需要回填creation_y_m字段,但是这样做很简单,只需扫描表格并更新每一项以具有新属性即可。

当然,这有很多变化。您可以调整哈希键的粒度(也许只想年份,也许想年月日)。您可以使用纪元时间代替ISO 8601字符串。