我有salesperson
索引,其中availableDateRange
作爲多值dateRangeField。 以下爲availableDateRange
場Solr 6 DateRangeField搜索精確匹配
<fields>
<field name="availableDateRange" type="daterange" indexed="true" stored="true" multiValued="true" required="false"/>
</fields>
<types>
<fieldtype name="daterange" class="solr.DateRangeField"/>
</types>
如果我搜索可用的銷售人員從2017年7月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年7月15日於2017年7月17日]正顯示出我的銷售人員是誰,甚至提供一個匹配一天中的任何從15日至17日。
當前查詢的行爲就像
availableRange:"2017-07-15" OR availableRange:"2017-07-16" OR availableRange:"2017-07-17"
我的問題是:我怎樣才能得到誰可在搜索範圍內的所有天(即所有的提到的日期範圍15天的所有銷售人員,16,17日)
查詢的行爲應該是這樣的:
availableRange:"2017-07-15" AND availableRange:"2017-07-16" AND availableRange:"2017-07-17"
但使用,而不是一個可行的解決方案,用於大日期範圍(例如, 2017-01-01 TO 2017-12-31)
任何人都可以幫助我找出一個可行和有效的解決方案。
謝謝,似乎工作。 參考 https://cwiki.apache.org/confluence/display/solr/Working+with+Dates 有3個理性謂詞(即Intersects(默認),Contains,Within)。 欲瞭解更多知識,請告訴我如何使用其他2個理性謂詞(即相交(默認),內部) –