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));
希望对您有所帮助。
我有以下代码在 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));
希望对您有所帮助。