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