elasticsearch,Sql,elasticsearch" /> elasticsearch,Sql,elasticsearch" />

Sql ElasticSearch如何在组查询中设置筛选

Sql ElasticSearch如何在组查询中设置筛选,sql,elasticsearch,Sql,elasticsearch,在这个官方网站上 他们有这样的疑问: curl -XPOST 'localhost:9200/bank/_search?pretty' -d ' { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state" } } } }' 然后说它类似于: SELECT state, COUNT(*) FROM bank GROUP BY state ORDE

在这个官方网站上

他们有这样的疑问:

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
  "size": 0,
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "state"
      }
    }
  }
}'
然后说它类似于:

SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC
我的问题是地图在哪里

是否在选择
术语
部分中的属性时,意味着
选择状态,计数(*)

在elasticsearch查询中,状态为order desc的代码在哪里?

你说的“映射”是什么意思

terms
是一种聚合类型,它将返回包含键的每个bucket(在本例中为
状态
字段值)以及该术语在所有检索到的文档中的计数

按计数描述排序是Elasticsearch的默认值,因此它是隐式的

输出示例:

{
  ...
  "aggregations": {
    "group_by_state": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": "Florida",
          "doc_count": 10
        },
        {
          "key": "Rio de Janeiro",
          "doc_count": 8
        },
        {
          "key": "Lisbon",
          "doc_count": 5
        }
      ]
    }
  }
  ...
}
“映射”是什么意思

terms
是一种聚合类型,它将返回包含键的每个bucket(在本例中为
状态
字段值)以及该术语在所有检索到的文档中的计数

按计数描述排序是Elasticsearch的默认值,因此它是隐式的

输出示例:

{
  ...
  "aggregations": {
    "group_by_state": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": "Florida",
          "doc_count": 10
        },
        {
          "key": "Rio de Janeiro",
          "doc_count": 8
        },
        {
          "key": "Lisbon",
          "doc_count": 5
        }
      ]
    }
  }
  ...
}
正如您所提到的,它的sql类比是
SELECT state,COUNT(*)FROM bank GROUP BY state ORDER BY COUNT(*)DESC

我们在上面定义了术语聚合,它是
bucket聚合的一种类型

  • :为给定字段编制索引的唯一术语
  • 单据计数:匹配单据的数量
术语聚合中的
字段
值定义了两件事:

  • 哪一列用于分组(
    state
    在我们的例子中(这是指sql中的
    groupbystate
  • bucket的键是什么(在本例中索引的
    state
    的唯一值。(这是指sql中的
    SELECT state
doc\u count
是指
sql
中的
count*
的,当我们使用
bucket聚合时返回

默认情况下,Terms aggregation返回按doc_count排序的存储桶,这类似于sql中的
ORDER by count(*)DESC

希望这能回答您的所有疑问

正如您所提到的,它的sql类比是
SELECT state,COUNT(*)FROM bank GROUP BY state ORDER BY COUNT(*)DESC

我们在上面定义了术语聚合,它是
bucket聚合的一种类型

  • :为给定字段编制索引的唯一术语
  • 单据计数:匹配单据的数量
术语聚合中的
字段
值定义了两件事:

  • 哪一列用于分组(
    state
    在我们的例子中(这是指sql中的
    groupbystate
  • bucket的键是什么(在本例中索引的
    state
    的唯一值。(这是指sql中的
    SELECT state
doc\u count
是指
sql
中的
count*
的,当我们使用
bucket聚合时返回

默认情况下,Terms aggregation返回按doc_count排序的存储桶,这类似于sql中的
ORDER by count(*)DESC


希望这能回答您的所有问题。

有两个“状态”词,其中一个是我在
state
属性上聚合的引用,另一个是告诉我希望
state
与它的计数一起出现在输出中。状态也会被检索到……用elasticsearch响应更新我的答案示例有两个“状态”单词,我在
状态
属性上聚合的哪一个引用,以及哪一个告诉我希望
状态
与其计数一起出现在输出中,状态也会被检索…用elasticsearch响应示例更新了我的答案