2017-08-29 158 views
0

1)Solr中6,我有日期範圍字段類型Solr的dateRangeField獲取確切的數據只考慮日期,不考慮時間

<fieldType name="daterange" class="solr.DateRangeField"/>

2)它包含的酒店旅館客房availableDateRange。

"availableDateRange":["[2017-01-01T00:00:00Z TO 2017-12-31T00:00:00Z]"], 

3)當我查詢來獲取與下面的查詢

fq={!field f=dateRange op=Contains}[2017 TO 2017] 

4)我只得到室,也可在2018年1月1日所有可用的酒店房間是全2017年,我的意思是,我只得到記錄,其中有日期範圍結束日期+ 1

[2017-01-01T00:00:00Z TO 2018-01-01T00:00:00Z] 

我知道這個問題是可以解決的,如果我能結束日期保存爲

"availableDateRange":["[2017-01-01T00:00:00Z TO 2017-12-31T23:59:59Z]"], 

或更改查詢本身的結束日期,即結束日期-1

由於某種原因,我不能做上述兩種方法

有誰知道任何設置或查詢中的任何改變(在我的問題#3),所以我會得到以下記錄。

"availableDateRange":["[2017-01-01T00:00:00Z TO 2017-12-31T00:00:00Z]"], 

回答

0

相反操作Contains的,你應該使用Within,它會做的伎倆爲您服務。

我做了查詢:fq={!field f=date op=Within}[2017 TO 2017],並返回給我,範圍[2017-01-01T00:00:00Z TO 2017-12-31T00:00:00Z]與範圍的例子的[2017-01-01T00:00:00Z TO 2017-12-31T23:59:59Z]

完整的源文件here