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

时间:2016-02-29 07:03:55

标签: elasticsearch nest

我有以下代码在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

中实现此目标

1 个答案:

答案 0 :(得分:3)

您可以通过

执行此操作
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));

希望它有所帮助。