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]"],
答案 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。