Solr dateRangeField仅考虑日期而不考虑时间来获取精确数据

时间:2017-08-29 09:40:26

标签: solr date-range

1)在solr 6中,我有dateRange fieldType

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

2)这包含酒店住宿房间的可用日期。

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

3)当我通过以下查询查询整个2017年的所有可用酒店房间时

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

4)我只获得了2018-01-01也可用的房间,我的意思是我只获得有dateRange endDate + 1的记录

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

我知道如果我可以将结束日期保存为

,则可以解决此问题
"availableDateRange":["[2017-01-01T00:00:00Z TO 2017-12-31T23:59:59Z]"],
     

或者更改查询本身的endDate,即EndDate-1

     

由于某种原因我无法做到以上两种方法

有没有人知道任何设置或查询中的任何更改(我的问题中的#3),所以我会得到以下记录。

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

1 个答案:

答案 0 :(得分: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