elasticsearch - 在 Elasticsearch 查询中查找最大日期

标签 elasticsearch

您能帮我将此 sql 查询转换为 Elasticsearch 查询吗?

SELECT group,MAX(date) as max_date
FROM table
WHERE checks>0
GROUP BY group

最佳答案

如果您的查询如下,假设您正在执行HTTP POST,该怎么办?您可以简单地使用 max ES 的聚合以获得 max 值,并在 aggs 中使用 terms 以获得 GROUP BY功能完成。

请求:

yourhost:9200/your_index/_search

请求正文:

{
   "query": {
       "query_string": {
           "query": "checks > 0"  <-- check whether this works, if not use the range query 
       }
   },
   "aggs": {
      "groupby_group": {
          "terms": {
              "field": "group"
           },
   "aggs": {
      "maximum": {
          "max": {
              "script": "doc['date'].value"
          }
       }
    }
  }
 }
}

对于检查> 0,您可以使用 range查询以及查询中的查询,可能如下所示:

"range" : {
        "checks" : {
             "gte" : 0
         }
 }

This有人可以帮助您执行聚合。但在尝试查询之前,请确保您已从 elasticsearch.yml 启用脚本:

script.inline: on

希望这有帮助!

关于elasticsearch - 在 Elasticsearch 查询中查找最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42252342/

相关文章:

elasticsearch - Elasticsearch 中的对象数组搜索支持

amazon-web-services - 带有 Curator 4.2.6 的 AWS Elasticsearch 5.1 - 删除索引不起作用?

elasticsearch - 在Sonarqube 5.6中禁用高水印日志记录

hadoop - 高效地将大量数据迁移到 Elasticsearch-hadoop

Elasticsearch 重建索引 : How do you direct updates to the new index while it is being built?

java - 如何在Java API中Elasticsearch范围查询两个字段的总和?

java - 如何在Spring数据elasticsearch中映射嵌套对象列表

java - Elasticsearch 扩展内部文档数组

elasticsearch - elasticSearch geoPoint的问题

elasticsearch - 使用NEST在elasticSearch上创建映射时忽略字段