我正在将NEST 6.0与C#结合使用,并希望对多种类型进行排序。例如,我有两个索引,分别为类型T1和类型T2的I1和I2。我有一个API,可以返回两种类型的搜索结果,因此,结果中有一些T1记录,一些是T2类型。
现在,我想对字段CreatedDate进行排序,我该怎么做?两种类型都具有相同的列名和相同的类型。下面是我正在使用的查询,它可以正常工作,但没有排序条件。
await _client.SearchAsync<dynamic>(s => s
.AllIndices()
.Type(types)
.From(from)
.Size(pageSize)
.Query(q => q
.MultiMatch(m => m
.Query(searchText)
)
)
);
答案 0 :(得分:0)
基于API文档,我想下面的代码就是您想要的。
await _client.SearchAsync<dynamic>(s => s
.AllIndices()
.Type(types)
.From(from)
.Size(pageSize)
.Query(q => q
.MultiMatch(m => m
.Query(searchText)
)
)
.Sort(ss => ss
//.Descending(s => s.CreatedDate)
.Field(f => f
.Field(ff => ff.CreatedDate)
.Type("T1")
.Order(SortOrder.Descending)
)
.Field(f => f
.Field(ff => ff.CreatedDate)
.Type("T2")
.Order(SortOrder.Descending)
)
)
);