1.4.2 solr字段類型--(1.4.2.4)使用Dates(日期)

1.4.2 solr字段類型html

  (1.4.2.1) 字段類型定義和字段類型屬性.post

  (1.4.2.2) solr附帶的字段類型spa

  (1.4.2.3) 使用貨幣和匯率code

  (1.4.2.4) 使用Dates(日期)xml

  (1.4.2.5) 使用枚舉字段htm

  (1.4.2.6) 使用外部文件和程序blog

  (1.4.2.7) 字段屬性使用案例事件

 

使用Dates(日期)

日期格式

  solr的TrieDateField(DateField已經棄用)字段類型,表示精確到毫秒的時間點.在XML Schema 規範中所使用的格式是一個嚴格的日期事件的規範表示格式.字符串

  YYYY-MM-DDThh:mm:ssZ:get

    YYYY:年

    MM:月

    DD:日

    hh:24進制小時

    mm:分鐘

    ss:秒

    Z:表示UTC時間

  注意:沒有時區能夠指定,這個日期字符串通常表示UTC時間.這裏有一個例子:

  1972-05-20T17:33:18Z

  你能夠選擇加入部分小數,不容許在末尾加0,任何精確度超出毫秒的均被忽略掉:

  1972-05-20T17:33:18.772Z
  1972-05-20T17:33:18.77Z
  1972-05-20T17:33:18.7Z

Date的數學運算

  solr的日期字段類型一樣支持日期的數學運算表達式,這使它很容易的及時建立時間相對於固定的時刻而言,當前時間能夠用"NOW"來表示:

日期數學運算語法

  日期表達式能夠添加一些指定單位的時間數字,也能夠對當前時間經過指定的單位來四捨五入.表達式能夠鏈式的,從左到右執行.斜槓"/"表示四捨五入.

 例子:

  表示兩個月以後的當前時間點:NOW+2MONTHS

  表示一天之前的時間點:NOW-1DAY

  表示當前小時開始:NOW/HOUR

  下面計算(精確到毫秒)將來6個月又3天的時間點,而後四捨五入時間到天(day):

  NOW+6MONTHS+3DAYS/DAY

  混合方式:1972-05-20T17:33:18.772Z+6MONTHS+3DAYS/DAY

請求參數

 NOW

  example:

    q=solr&fq=start_date:[* TO NOW]&NOW=1384387200000

 TZ

  默認的,全部日期的數學表達式都是相對於UTC時區來評估的.TZ屬性能夠指定時區.來覆蓋默認的UTC時區.

  例如,這個請求對當前月的每一天使用分面範圍查詢,時區爲UTC.

http://localhost:8983/solr/select?q=*:*&facet.range=my_date_field&facet=true
&facet.range.start=NOW/MONTH&facet.range.end=NOW/MONTH%2B1MONTH&facet.range.gap=%2B1DAY

 

  結果:

<int name="2013-11-01T00:00:00Z">0</int>
<int name="2013-11-02T00:00:00Z">0</int>
<int name="2013-11-03T00:00:00Z">0</int>
<int name="2013-11-04T00:00:00Z">0</int>
<int name="2013-11-05T00:00:00Z">0</int>
<int name="2013-11-06T00:00:00Z">0</int>
<int name="2013-11-07T00:00:00Z">0</int>

 

  指定時區:

http://localhost:8983/solr/select?q=*:*&facet.range=my_date_field&facet=true
&facet.range.start=NOW/MONTH&facet.range.end=NOW/MONTH%2B1MONTH&facet.range.gap=%2B1DAY
&TZ=America/Los_Angeles

 

結果:

<int name="2013-11-01T07:00:00Z">0</int>
<int name="2013-11-02T07:00:00Z">0</int>
<int name="2013-11-03T07:00:00Z">0</int>
<int name="2013-11-04T08:00:00Z">0</int>
<int name="2013-11-05T08:00:00Z">0</int>
<int name="2013-11-06T08:00:00Z">0</int>
<int name="2013-11-07T08:00:00Z">0</int>
相關文章
相關標籤/搜索