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