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响应示例更新了我的答案