elasticsearch - 如何在弹性搜索的计数 API 中包含组子句
问题描述
对于我的应用程序,我使用 elasticsearch 提供的 count API 来获取我在 Java 中使用 RestHighLevel 客户端的搜索查询的聚合值。但是,我面临的情况是,我需要根据需要按条件包含分组的货币来获取汇总。关于如何使用计数 API Java 代码按条件添加组的任何想法?
解决方案
以下是使用聚合函数获取计数的示例查询。
{
"size" : 0,
"query" : {
"term" : {
"columnid" : {
"value" : 1,
"boost" : 1.0
}
}
},
"_source" : false,
"stored_fields" : "_none_",
"aggregations" : {
"groupby" : {
"composite" : {
"size" : 10,
"sources" : [
{
"14" : {
"terms" : {
"field" : "columnid",
"missing_bucket" : true,
"order" : "asc"
}
}
}
]
}
}
}
}
还可以使用以下查询将您的 SQL 查询转换为 kibana 查询-
POST _xpack/sql/translate
{
"query": "SELECT COUNT(*), columnid FROM Indexname WHERE columnid=1 group by columnid ",
"fetch_size": 10
}
如果它解决了您的问题,请标记答案。
推荐阅读
- excel - 如何在 24 小时内计算(总结)适当的百分比(不超过 100%)
- java - Jackson-xml 不解析嵌套对象
- json - 嵌套 JSON 的叶子作为 JS 中的完整数据
- c# - 使用 Windows 标识安全地保存用户数据
- c++ - 来自枚举值的 C++ decltype
- node.js - 尽管存在数据,但在 GraphQL 查询中日期字段返回为空
- angular - 为什么 Firestore 数据检索适用于 ng-serve 版本但在 ng-build 版本中失败
- java - 使用 java 连接到 Microsoft SQL 服务器的 JDBC
- c++ - 如何转换不同类型的迭代器
- ruby - 如何运行 ruby 脚本来解压缩文件?