ES搜索引擎入门+最佳实践(七):聚合

本文详细介绍了Elasticsearch(ES)中的聚合功能,包括桶聚合的多种方式如terms、ranges,以及如何使用指标函数进行桶聚合、多维桶嵌套聚合和地理距离聚合。同时,讨论了不同的聚合方式,如先查询再聚合、前过滤器和后过滤器,并阐述了聚合排序和分页的方法,如top hits和collapse聚合。
摘要由CSDN通过智能技术生成

        ES在搜索和数据分析中的应用越来越广泛,在之前项目中对ES的使用有些心得,最近有不少朋友和同事都问到了ES,刚好最近也有些时间,所以打算通过8~10篇文章介绍下ES.(其实我也不知道最终会写下多少篇),为了保持阅读的连贯性,可以先看前面几篇文章:

ES搜索引擎入门+最佳实践(一)_flame.liu的博客-CSDN博客

ES搜索引擎入门+最佳实践(二)_flame.liu的博客-CSDN博客

ES搜索引擎入门+最佳实践(三)_flame.liu的博客-CSDN博客

ES搜索引擎入门+最佳实践(四)_flame.liu的博客-CSDN博客

ES搜索引擎入门+最佳实践(五)_flame.liu的博客-CSDN博客

ES搜索引擎入门+最佳实践(六)_flame.liu的博客-CSDN博客

一.概要

        聚合,排序,分页这些概念在MySQL中都有,但是ES中的实现与MySQL既有相似又有不同.在学习这些内容的时候可以做类比.本章将会介绍,桶聚合,聚合方式,聚合排序,聚合分页.

        本章使用的索引仍然和之前的格式是一样的,代码如下:

PUT /goods
{
  "mappings": {            //映射
    "properties": {        //属性
      "title":{            //将title定义为多字段
        "type": "text",
        "fields": {"title_key":{"type":"keyword"}}    //title将建立text类型和keyword类型两个索引
      },
      "price":{"type": "double"},        //价格
      "stockNum":{"type": "integer"},    //库存
      "createTime":{"type": "date"},     //创建日期
      "updateTime":{"type": "date", "format": "yyyy-MM-dd HH:mm:ss"},    //这里创建了两种日期格式
      "tag":{"type": "keyword"},                    //标签,这里考虑存入数组
      "rating":{                                    //评价:这里设置为对象类型
        "properties": {                             //对象类型这里需要使用到属性
          "good_rating":{"type":"integer"},
          "bad_rating":{"type":"integer"}
        }  
      },
      "location":{"type":"geo_point"},        //地理位置,其实这是一个对象类型
      "isDeleted":{"type":"boolean"}          //是否删除
      }
    }
  }
}

索引中的数据请自行加入.本章需要使用到的一些关键字和说明如下表.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值