1

私はelasticsearch.netクライアントを使用しています。ページネーションで何かを照会します。ただし、クエリ基準ではなく並べ替え基準に従ってドキュメントを返します。クエリを無視して並べ替えを行うだけのようです。問題は、すべてのドキュメントを並べ替えてからクエリを処理したいということです。問題を解決するクエリ内でソートを使用できればと思います。それを行う方法はありますか? 前もって感謝します。

ここにコード部分があります。

    ISearchResponse<Product> response = _elasticClient
                .Search<Product>(p => p
                    .From(request.Pagination.PageIndex - 1)
                    .Size(request.Pagination.ItemCount)
                    .Query(q => q
                        .Bool(b => b
                            .Must(m => m.Term(genderTerm => genderTerm.ProductGenderTypeList, request.BoutiqueFilter.GenderTypeList ?? Enumerable.Empty<string>()))
                            .Should(s => s
                                .Match(m2 => m2
                                    .OnField(on => on.ProductGenderType)
                                    .Query((request.BoutiqueFilter.SortGender == SortGender.None ? String.Empty : ((int)request.BoutiqueFilter.SortGender).ToString()))
                                    .Operator(Operator.And)))))
                    .Sort(sort => request.BoutiqueFilter.SortByPrice == SortByPrice.None
                    ? sort.OnField(onf => onf.Sequence).Ascending()
                    : request.BoutiqueFilter.SortByPrice == SortByPrice.Ascending
                        ? sort.OnField(onf => onf.Price).Ascending()
                        : sort.OnField(onf => onf.Price).Descending()));
4

0 に答える 0