elasticsearch 在Foreach-ElasticSearch中嵌套c#查询创建排序,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 在Foreach-ElasticSearch中嵌套c#查询创建排序,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 在Foreach-ElasticSearch中嵌套c#查询创建排序

elasticsearch 在Foreach-ElasticSearch中嵌套c#查询创建排序,elasticsearch,nest,elasticsearch,Nest,我有以下代码在foreach循环中构造排序查询,但是我的问题是这将用最新的排序描述符替换我的旧排序描述符 SearchDescriptor<MyDTO> nQuery = new SearchDescriptor<MyDTO>(); foreach (var sort in criteria.SortQuery.OrderBy(o => o.SortPreference)) { nQuery= n

我有以下代码在foreach循环中构造排序查询,但是我的问题是这将用最新的排序描述符替换我的旧排序描述符

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));
                }
SearchDescriptor nQuery=newsearchDescriptor();
foreach(criteria.SortQuery.OrderBy(o=>o.SortPreference)中的var排序)
{
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));
var sortDescriptor=new sortDescriptor();
foreach(sortCollection中的变量排序)
{
排序器排序器;
var tryParse=Enum.tryParse(sort.Order,out sortOrder);
如果(!tryParse)取决于您如何处理错误的排序顺序
sortDescriptor.Field(sort.FieldName,sortOrder);
}
Search(s=>s.Size(0.Sort)(Sort=>sortDescriptor));
希望有帮助。

您可以通过

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));
var sortDescriptor=new sortDescriptor();
foreach(sortCollection中的变量排序)
{
排序器排序器;
var tryParse=Enum.tryParse(sort.Order,out sortOrder);
如果(!tryParse)取决于您如何处理错误的排序顺序
sortDescriptor.Field(sort.FieldName,sortOrder);
}
Search(s=>s.Size(0.Sort)(Sort=>sortDescriptor));

希望能有所帮助。

谢谢,我确实带了这个:)谢谢,我带了这个:)