2017-11-21 5 views
0

このコードブロックを変換しようとしていますが、置換する正しい定義が見つかりません。< FilteredQueryDescriptor < T >> selector。 私はNESTバージョン5.5.0にアップグレードした、ここで私は、NESTの高いバージョン使用して動作するように変換しようとしているコードのブロックです:NEST 5.5.0の.Filteredの置換

private Func<SearchDescriptor<MyOrder>, SearchDescriptor<MyOrder>> QueryDescriptor(UserView userView) 
    { 
     Func<SearchDescriptor<MyOrder>, SearchDescriptor<MyOrder>> result; 

     result = delegate(SearchDescriptor<MyOrder> descriptor) 
     { 
      descriptor.Query 
      (
       query => query.MatchAll() 
      ) 
      .Query(f => f.Bool(CommonHelper.GetFilters(userView))); 
      return descriptor; 
     }; 

     return result; 
    } 

に編集:ここでは

 UserView defaultUserView = new UserView(); 

     SearchDescriptor<MyOrder> _searchDesc = new SearchDescriptor<MyOrder>(); 

     _searchDesc = _searchDesc      
       .Index(MyIndex) 
       .Type(MyType) 
       .Query(mq => mq.Filtered(QueryDescriptor(defaultView))) 
       .SearchType(SearchType.Count) 

はQueryDescriptorをです:ここにありますCommonHelper.GetFilters(userView):

public static class CommonHelper 
{ 
    public static Func<BoolQueryDescriptor<MyOrder>, BoolQueryDescriptor<MyOrder>> GetFilters(UserView userView) 
    { 
     Func<BoolQueryDescriptor<MyOrder>, BoolQueryDescriptor<MyOrder>> 
     result= delegate (BoolQueryDescriptor<MyOrder> descriptor) 
     { 
      switch (userView.UserView) 
      { 
        case UserView.1: 
         descriptor.Must(OldDefaultFilter()); 
         break; 
        case UserView.2: 
         descriptor.Must(OldDefaultFilter()) 
           .MustNot(MustNotDefaultFilter()); 
         break; 
      } 
      return descriptor; 
      }; 
     return result; 

}}

+0

CommonHelperクラスを共有できますか? –

+0

こんにちは@Md.AbdulAlim、上記のCommonHelper.GetFiltersを参照してください。 – user2756589

答えて

1

FilteredQueryDescriptor<T>はNEST 2.xでは廃止され、NEST 5.xではそれぞれのメジャーバージョンのElasticsearchの変更に伴い削除されました。

前進するには、クエリの場合はmust句とフィルタの場合はfilter句の代わりにboolクエリを使用します。