我這裏準備了完整的測試用例:https://gist.github.com/pkrakowiak/cc8addf5725193a01f2d如何查詢具有RavenDB中日期範圍的子集合的索引?
還有Location
文件。每個位置在一段時間內可以有零個或多個贊助商(由IList<Sponsorship> Sponsors
屬性表示)。我只需要返回那些在特定日期贊助的地點(例如3月15日的例子)。所以,這樣的位置必須符合以下查詢至少一個Sponsorship
實例:.Where(x => x.Sponsors.Any(s => s.From <= today && s.To >= today))
我準備了兩個試驗,一個不使用索引明確:CanGetCurrentlySponsoredLocations
,和一個它使用我創建了一個靜態指標:CanGetCurrentlySponsoredLocationsUsingStaticIndex
。第一個會通過,第二個會失敗。問題是 - 我如何進行第二次測試?我需要對我的Locations_ByCoordinates
索引進行哪些修改?
如果您想知道索引名稱來自哪裏或評論是什麼 - 只是忽略它們。 :)他們是我正在測試的其他東西的剩菜。
更新
我把這個問題首先官方RavenDB谷歌組:https://groups.google.com/forum/?fromgroups=#!topic/ravendb/ySUPXqkpTA8可悲的是,它並沒有給我一個解決方案。
這沒有幫助 - 贊助是一對日期 - 從和到。以上將混合所有日期和查詢將無法按預期工作。在此處查看我的評論:https://groups.google.com/d/msg/ravendb/ySUPXqkpTA8/xTEPv_qGpKEJ 座標在我的真實索引中編入索引。 :)我只是不想在這裏添加額外的東西。 – 2013-03-29 11:12:52
其實 - 不,他們沒有混合。每一對都在一個單獨的索引條目中。我在沒有3/11-3/15範圍的情況下運行了測試,並且如預期的那樣返回了零結果。如果你能證明另外,請用這個索引更新你的單元測試,並告訴我它失敗的地方。 – 2013-03-29 14:34:55
此外,您可能會考慮使用包容性/排他性範圍's.From <=今天&& s.To>今天' - 否則您可能有重疊。 – 2013-03-29 14:36:18