2011-12-30 69 views
4

讓我們想象一下,我有以下指標定義:指定索引文檔集合整理

public class LastSuspensions: AbstractIndexCreationTask<Casino, LastSuspensions.ReduceResult> 
    { 
     public class ReduceResult 
     { 
      public string CityId { get; set; } 
      public DateTime DateTime { get; set; } 
      public string CasinoId { get; set; } 
      public IList<Exemption> Exemptions { get; set; } 
     } 

     public LastSuspensions() 
     { 
      Map = casinos => from casino in casinos 
          from suspension in casino.Suspensions 
          select new { CityId = casino.CityId, DateTime = suspension.DateTime, CasinoId = casino.Id, Exemptions = suspension.Exemptions }; 

      Store(x => x.CityId, FieldStorage.Yes); 
      Store(x => x.DateTime, FieldStorage.Yes); 
      Store(x => x.CasinoId, FieldStorage.Yes); 
      Store(x => x.Exemptions, FieldStorage.Yes); 
     } 

有什麼辦法可以指定我想獲得豁免徵收由它的一個屬性進行排序?

回答

2

您不需要在這些字段上調用Store。 由於您要將整個異常集合拉出來,作爲加載文檔的一部分,在客戶端進行排序不會有額外的實際成本。

+0

有一定的成本,如果集合是很大,所以我想知道是否有可能使它的服務器 – SiberianGuy 2011-12-30 10:32:22

0

您的豁免類應實現IComparable接口。 IComparable接口定義了CompareTo(T)方法,該方法確定實現類型實例的排序順序。樣品可以發現here以及here

我希望這是有幫助的。

問候, 葉夫根

+0

對不起,但我不認爲你的回答在某種程度上涉及到我的題 – SiberianGuy 2012-01-08 16:46:48