gpt4 book ai didi

sql - ElasticSearch如何在组查询中设置过滤

转载 作者:行者123 更新时间:2023-12-03 01:02:51 25 4
gpt4 key购买 nike

在这个官方网站
https://www.elastic.co/guide/en/elasticsearch/reference/current/_executing_aggregations.html

他们有这个查询:

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

我的问题是映射在哪里?

terms部分中选择属性时,是否意味着 select state, count(*)

以及该Elasticsearch查询中指示订购的状态的代码在哪里?

最佳答案

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state"
}
}
}
}

您提到的它的SQL类比是 SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC
我们在上面定义了术语聚合,它是一种 bucket aggregation。它返回包含以下内容的存储桶列表
  • :为给定字段索引的唯一术语
  • doc_count :匹配文档的数目

  • 术语聚合中的 field值定义了两件事:
  • 将使用哪一列进行分组(在本例中为state(在sql中指GROUP BY state))
  • 存储桶的关键是什么(本例中索引的state的唯一值。(这指的是sql中的SELECT state))

  • 当我们使用 doc_count时,返回了 count *中的 sqlbucket aggregation

    默认情况下,字词聚合返回由doc_count排序的存储桶,类似于sql中的 ORDER BY COUNT(*) DESC

    希望这能回复您的所有查询。

    关于sql - ElasticSearch如何在组查询中设置过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35022896/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com