【问题标题】:Solr dateRangeField fetch exact data considering only dates and without considering timeSolr dateRangeField 只考虑日期而不考虑时间来获取准确的数据
【发布时间】:2017-09-04 21:49:16
【问题描述】:

1) 在 solr 6 中,我有 dateRange 字段类型

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

2) 这包含酒店旅馆房间的 availableDateRange。

"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]"],

【问题讨论】:

    标签: solr date-range


    【解决方案1】:

    您应该使用Within,而不是操作Contains,它会为您解决问题。

    我进行了查询: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

    【讨论】:

      猜你喜欢
      • 2013-09-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2020-05-25
      • 2019-12-06
      相关资源
      最近更新 更多