我有一個文件是這樣的:
<doc>
查詢多值字段在Solr的
<arr name="StartDate">
<date>2012-08-18T17:00:00Z</date>
<date>2012-06-28T17:00:00Z</date>
<date>2013-02-28T17:00:00Z</date>
<date>2012-04-16T17:00:00Z</date>
<date>2012-08-06T17:00:00Z</date>
<date>2012-05-18T17:00:00Z</date>
<date>2012-07-04T17:00:00Z</date>
</arr>
<arr name="EndDate">
<date>2012-09-29T17:00:00Z</date>
<date>2012-06-29T17:00:00Z</date>
<date>2013-04-16T17:00:00Z</date>
<date>2012-05-07T17:00:00Z</date>
<date>2012-08-15T17:00:00Z</date>
<date>2012-06-22T17:00:00Z</date>
<date>2012-08-01T17:00:00Z</date>
</arr>
</doc>
我有日期範圍,並希望找到一對起始日期的日期和結束日期覆蓋範圍。例如,如果輸入範圍(x,y)爲2012-08-18 < x和2012-09-29 > y,則第一對startDate和EndDate(2012-08-18 TO 2012-09-29)返回true。
我寫這樣的查詢:
開始日期:[1995-12-31T23:59:59.999Z TO 2012-08-18T00:00:00.000Z]日期和結束日期:2012-09-29T00:00 :00.000Z TO 2099-01-01T00:00:00.000Z]
但問題是SOLR搜索所有匹配日期中的14個項目的集合,而我只是想逐一比較它們(1與1,2與2 ...)。
請幫助告訴我該怎麼做。非常感謝。
您的第一個解決方案。我正在考慮使用Solr'函數'查詢。只要我們可以迭代2個數組,我們就可以找到實現它的方法。只是我的想法。我對Solr很新。謝謝,等待其他答案。 – dtnam 2012-04-19 08:37:13
我懷疑訂單是保證多值字段;我沒有閱讀源代碼來檢查這個問題,但它肯定有可能會以'[start2,start1,start3]'結束。 – beerbajay 2012-04-19 08:55:47
我能看到的其他方法是將(start1,end1)非規範化爲一個可以搜索的值。然而這可能不是那麼容易/可能的,所有 – Fuxi 2012-04-19 11:29:22