1.4.2 solr字段類型html
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
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>