0

(如果你想TL向下滚动到加粗部分:博士;)搜索时间范围在亚马逊CloudSearch

我有一个简单的业务需求 - 亚马逊CloudSearch搜索时间范围。因此,例如,我有一个云端搜索条目,其中eventTime:5:00 pm。问题是我只需要时间。根据AWS docs on the date field

date-包含时间戳。日期和时间在根据IETF RFC3339 UTC (协调通用时间)指定: YYYY-MM-DDTHH:MM:ss.SSSZ。在UTC,例如,5:00 PM 1970年8月23日 是:1970-08-23T17:00:00Z。请注意,在指定UTC时间时,您还可以指定分数为 秒。例如, 1967-01-31T23:20:50.650Z。

此外,还有this上搜索日期范围:

要搜索日期范围(或次)在日期字段,您可以使用您使用的 相同括号范围的语法数值,但您必须将日期字符串括在单引号中。例如, 以下请求搜索所有电影的电影数据与2013年1月1的 发布日期或更高版本:

您可以使用结构化查询搜索领域值范围为 。要指定的值的范围,使用逗号(,)分隔 上限和下限,并使用括号或花括号括起来的范围内。 方形支架,[或],表明该结合被包括在 范围时,大括号{}或,不包括结合。

例如,要搜索从2008年至2010年(含)的 发布的电影的样本数据集,请将范围指定为[2008,2010]。

要指定开放式的范围,省略了界。例如, year:[2002,}匹配从2002年开始发布的所有电影,并且 year:{,1970]匹配1970年发布的所有电影。当您省略 装订时,必须使用大括号。

在复合查询中,可以使用范围运算符语法来搜索 范围的值;例如:(范围字段=年份[1967,})。

这一切都很好,但我希望能够只搜索一次,在任何一天上午10点至下午6点之间的所有约会。如何忽略日期组件

回答

1

这不是直接支持,但一个简单的解决方法是添加一个额外的日期字段,其中只包含数据的时间部分。

也就是说,yyyy-mm-dd部分将始终为常数,例如1970-01-01,但您将为每个文档设置HH:mm:ss.SSS。这听起来像你正在使用JavaScript,以便extract time from datetime using javascript可以帮助你

+0

感谢您的回答,但我不知道,我完全以下。我的解决方案是在不同时间对所有参赛作品具有相同的日期,并忽略时间部分。这就是你所推荐的,对吗? – VSO

+0

是的,假设你的意思是“忽略_日期部分” – alexroussos

+0

我做过。我会保持这种状态,直到明天才能看到我们是否错过了某些东西,但看起来我们想出了唯一可能的解决方案。再次感谢,明天早上会接受。 – VSO