2009-04-28 172 views
25

嗯,我編寫了一些方法來返回索爾文檔,馬克間隔日期範圍。 文檔以ISO 8601格式存儲日期字段。Solr提取日期範圍

有什麼想法?

THX

回答

61

檢查在SOLR wiki一些文檔和示例:

時間戳:[*到現在]

CREATEDATE:1976-03-06T23:59:59.999Z TO *]

CREATEDATE:1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]

發佈時間:[NOW-1YE AR /天至NOW/DAY + 1DAY]

CREATEDATE:1976-03-06T23:59:59.999Z TO 1976-03-06T23:59:59.999Z + 1年]

CREATEDATE:1976- 03-06T23:59:59.999Z /年1976-03-06T23:59:59.999Z]

希望這有助於 大衛。

+0

THX大衛,來自西班牙的問候 – Lici 2009-04-28 16:15:42

+0

不客氣,如果這個答案是,你正在尋找解決方案,只是標記爲接受,如果沒有,讓我們(社區)知道什麼仍然在你的方式:) – 2009-04-28 16:28:33

30

在這裏,你會發現更多的細節有關的範圍查詢

https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser

幾所示例

1. Exact Matching: q= modify_date:"2012-07-06T9:23:43Z" 
2. Less than: q= modify_date:{* TO 2012-07-06T9:23:43Z } 
3. More than: q= modify_date:{ 2012-07-06T9:23:43Z TO *} 
4. Less or equal than: modify_date:[* TO 2012-07-06T9:23:43Z] 
5. More or equal than: modify_date:[ 2012-07-06T9:23:43Z TO *] 

方括號[]表示匹配值,包括上限和下限包含的範圍查詢。

大括號{}表示一個獨佔範圍查詢,它匹配上限和下限之間的值,但不包括上限和下限本身。

3

假設您在架構領域是MODIFIED_DATE那麼你可以申請下列範圍查詢:

Modified_Date:[2015-04-20T07:49:00Z TO *] 
Modified_Date:[2015-04-20T07:49:00Z TO 2015-05- 
20T07:33:00Z] 
Modified_Date:[2015-04-20T07:49:00Z TO NOW] 
Modified_Date:[NOW-7DAY/DAY TO NOW] 
Modified_Date:"2015-05-27T10:04:00Z" 
Modified_Date:NOW 
Modified_Date:NOW/DAY 
Modified_Date:NOW/HOUR 
Modified_Date:NOW-1YEAR 
Modified_Date:NOW-2YEARS 
Modified_Date:NOW-3HOURS-30MINUTES 
Modified_Date:"2008-07-04T13:45:04Z/DAY" 
Modified_Date:[* TO NOW] 
Modified_Date://DAY 
Modified_Date://HOUR 
Modified_Date:[ * 2015-04-20T07:49:00Z ] 
Modified_Date:[2015-04-20T07:49:00Z *]