NEST c# 查询在 Foreach 中创建 SORT - ElasticSearch

NEST c# Query Creating SORT in Foreach - ElasticSearch

我有以下代码在 foreach 循环内构建 SORT 查询,但我的问题是这会将我的旧排序描述符替换为最新的排序描述符。

SearchDescriptor<MyDTO> nQuery = new SearchDescriptor<MyDTO>();
foreach (var sort in criteria.SortQuery.OrderBy(o => o.SortPreference))
                {
                  nQuery=  nQuery.Sort(s => s.Field(sort.SortName, sort.SortOrder));
                }

如何在 ForEach

中实现

您可以通过

var sortDescriptor = new SortDescriptor<Document>();

foreach (var sort in sortCollection)
{
    SortOrder sortOrder;
    var tryParse = Enum.TryParse(sort.Order, out sortOrder);
    if(!tryParse) up to you how you are going to handle incorrect sort order
    sortDescriptor.Field(sort.FieldName, sortOrder);
}

client.Search<Document>(s => s.Size(0).Sort(sort => sortDescriptor));

希望对您有所帮助。