我正在使用 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()));