如何解决Elasticsearch.net Fluent DSL 添加排序列表
我正在使用 ElasticSearch nest Fluent DSL,但似乎无法弄清楚如何创建 .sort() 接受的排序列表。
我有一个数组,我想将它们转换为使用 nest,就像使用过滤器一样:
"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"
有什么想法吗?
我认为它会是这样的:
new List<Func<QueryContainerDescriptor,QueryContainer>>();
但是 .sort() 除了它。
谢谢
解决方法
想通了:
Func<SortDescriptor<dynamic>,IPromise<IList<ISort>>> sortList = st =>
{
if (queryBuilder.Sort != null)
{
foreach (var option in queryBuilder.Sort)
{
if (option.SortOrder == "ASC")
{
st.Ascending(option.Key);
}
else
{
st.Descending(option.Key);
}
}
}
else
{
st.Ascending(SortSpecialField.Score);
}
return st;
};
然后在查询中添加:
.Sort(sortList)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。