このコードブロックを変換しようとしていますが、置き換える正しい定義が見つかりません。.FilteredacceptingAction<FilteredQueryDescriptor <T >>セレクター。NESTバージョン5.5.0にアップグレードしました。これは、より高いバージョンのNESTを使用して動作するように変換しようとしているコードのブロックです。
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は次のとおりです。
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;
}
編集:これが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;
}}
FilteredQueryDescriptor<T>
それぞれのメジャーバージョンでのElasticsearchの変更に伴い、NEST 2.xで非推奨になり、NEST5.xで削除されました。
今後は、bool
代わりmust
にクエリのfilter
句とフィルタの句を使用してクエリを使用してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加