elasticsearch - 结合流利和对象初始化语法
问题描述
使用 .NET 客户端 NEST,是否可以组合两种语法,如下所示,查询用一种语法编写,聚合用另一种语法编写?
var request = new SearchRequest();
request.Query = new MatchAllQuery();
request.Aggregations = new AggregationContainerDescriptor<Car>().Terms("color", x => x.Field(doc => doc.Color));
_elasticClient.Search<Car>(request);
这里的编译错误是 aAggregationContainerDescriptor
不会受到 a 的攻击AggregationDictionary
解决方案
您可以将描述符投射到那里IAggregationContainer
并Aggregations
从那里获取:
var request = new SearchRequest();
request.Query = new MatchAllQuery();
var aggregationContainer = (IAggregationContainer)new AggregationContainerDescriptor<Car>().Terms("color", x => x.Field(doc => doc.Color));
request.Aggregations = aggregationContainer.Aggregations;
var searchResponse = _elasticClient.Search<Car>(request);
希望有帮助。
推荐阅读
- ssl - 如果我们更新 SSL 证书并花时间部署到服务器,网站会不会工作
- terraform0.12+ - 如何为 aws_iam_policy_document 创建可重用的语句块?
- javascript - Javascript 执行顺序:cookie 是否总是在重定向之前设置?
- css - css 动画旋转 - 如何让 2 个元素同时旋转?
- user-interface - 如何取消 xcoms 在气流 UI 中的显示
- node.js - restify 中如何支持可选参数?
- python - 使用唯一的值更改重复项
- google-apps-script - 在谷歌电子表格中获取用户的电子邮件
- powershell - 需要帮助用于 RAM 检查的 PowerShell 脚本
- python - 无法在配置文件模板上显示登录用户配置文件详细信息?