一尘不染

如何在Elasticsearch的计数API中包含组子句

elasticsearch

对于我的应用程序,我使用的是Elasticsearch提供的count API,用于使用RestHighLevel
Client获取Java中我的搜索查询的合计值。但是,我面临着这样一种情况,我需要根据需要包括按条件分组的货币来获取汇总。关于如何使用count API
Java代码按条件添加分组的任何想法?


阅读 276

收藏
2020-06-22

共1个答案

一尘不染

以下是使用聚合函数获取计数的示例查询。

 {
  "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
    }

如果可以解决您的问题,请标记为答案。

2020-06-22