cloudsearch日期的范围查询

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

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

表模式是:id,version,creation_date,info。

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

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

amazon-dynamodb aws-sdk amazon-cloudsearch
1个回答
0
投票

以下是使用带有creation_y_m散列键和creation_date的GSI范围键的GSI在DynamoDB中完成此操作的方法。

当您查询一系列创建日期时,您需要进行一些日期操作以查找两个日期之间的所有月份,但随后您可以使用类似于此的关键条件表达式查询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字符串。

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