【发布时间】:2017-07-14 20:33:16
【问题描述】:
我有 salesperson 索引,它有 availableDateRange 作为多值 dateRangeField。
以下是availableDateRange 字段的架构
<fields>
<field name="availableDateRange" type="daterange" indexed="true" stored="true" multiValued="true" required="false"/>
</fields>
<types>
<fieldtype name="daterange" class="solr.DateRangeField"/>
</types>
如果我搜索 2017-07-15 到 207-07-17 的可用销售人员如下
avalableRange:"[2017-07-15 TO 2017-07-17]"
在搜索结果中,我得到如下 2 个结果:
availableRange: [
"[2017-01-01T00:00:00Z TO 2017-07-15T00:00:00Z]",
"[2017-09-01T00:00:00Z TO 2017-12-31T00:00:00Z]"
]
availableRange: [
"[2017-07-17T00:00:00Z TO 2017-07-19T00:00:00Z]"
]
当前搜索 dateRange [2017-07-15 TO 2017-07-17] 显示的销售人员在 7 月 15 日至 7 月 17 日的任何一个匹配日都有空。
当前查询的行为类似于
availableRange:"2017-07-15" OR availableRange:"2017-07-16" OR availableRange:"2017-07-17"
我的问题是:我怎样才能获得在搜索范围的所有日期(即提到的日期范围 7 月 15、16、17 日的所有日期)都有空的所有销售人员
查询的行为应该类似于:
availableRange:"2017-07-15" AND availableRange:"2017-07-16" AND availableRange:"2017-07-17"
但对于较大的日期范围(例如 2017-01-01 TO 2017-12-31),使用 AND 并不是一个可行的解决方案
谁能帮我找出一个可行且有效的解决方案。
【问题讨论】:
标签: solr date-range solr6