查看“ElasticSearch聚合分析:多桶排序(聚合后排序)”的源代码
←
ElasticSearch聚合分析:多桶排序(聚合后排序)
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:ElasticSearch教程]] == 关于 == 类似 terms、histogram、date_histogram 这类桶聚合都会动态生成多个桶,如果生成的桶特别多,我们如何确定这些桶的排序顺序,如何限制返回桶的数量。 == 多桶排序 == 默认情况,ES 会根据 '''doc_count''' 文档总数,'''降序'''排序。 ES 桶聚合支持两种方式排序: # '''内置排序''' # '''按度量指标排序''' === 内置排序 === 内置排序参数: * '''_count''':按'''文档数'''排序; *: 对 terms 、 histogram 、 date_histogram 有效。 * '''_term''':按'''词项的字符串值的字母顺序'''排序; *: 只在 terms 内使用。 * '''_key''':按'''每个桶的键值数值'''排序; *: 仅对 histogram 和 date_histogram 有效。 示例: <syntaxhighlight lang="JSON" highlight=""> GET /cars/_search { "size" : 0, "aggs" : { "colors" : { // 聚合查询名字,随便取一个 "terms" : { // 聚合类型为: terms "field" : "color", "order": { // 设置排序参数 "_count" : "asc" // 根据_count排序,asc升序,desc降序 } } } } } </syntaxhighlight> === 按度量指标排序 === 通常情况下,我们根据桶聚合分桶后,都会对桶内进行多个维度的指标聚合,所以我们也可以根据桶内指标聚合的结果进行排序。 示例: <syntaxhighlight lang="JSON" highlight=""> GET /cars/_search { "size" : 0, "aggs" : { "colors" : { // 聚合查询名字 "terms" : { // 聚合类型: terms,先分桶 "field" : "color", // 分桶字段为color "order": { // 设置排序参数 "avg_price" : "asc" // 根据avg_price指标聚合结果,升序排序。 } }, "aggs": { // 嵌套聚合查询,设置桶内聚合指标 "avg_price": { // 聚合查询名字,前面排序引用的就是这个名字 "avg": {"field": "price"} // 计算price字段平均值 } } } } } </syntaxhighlight> == 限制返回桶的数量 == 如果分桶的数量太多,可以通过给桶聚合增加一个 '''size''' 参数限制返回桶的数量。 示例: <syntaxhighlight lang="JSON" highlight=""> GET /_search { "aggs" : { "products" : { // 聚合查询名字 "terms" : { // 聚合类型为: terms "field" : "product", // 根据product字段分桶 "size" : 5 // 限制最多返回5个桶 } } } } </syntaxhighlight>
返回至“
ElasticSearch聚合分析:多桶排序(聚合后排序)
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息