当前位置: 首页 > news >正文

企业网站建设选题依据wordpress 即时

企业网站建设选题依据,wordpress 即时,媒体吧软文平台,手机主题制作软件app目录 一、数据聚合 1.1 DSL实现聚合 1.1.1 Bucket聚合 1.1.2 带条件聚合 1.1.3 Metric聚合 1.1.4 总结 2.1 RestClient实现聚合 2.1.1 Bucket聚合 2.1.2 带条件聚合 2.2.3 Metric聚合 一、数据聚合 聚合#xff08;aggregations#xff09;可以让我们极其方便的实…目录 一、数据聚合 1.1 DSL实现聚合 1.1.1 Bucket聚合  1.1.2 带条件聚合 1.1.3 Metric聚合 1.1.4 总结 2.1 RestClient实现聚合 2.1.1 Bucket聚合 2.1.2 带条件聚合 2.2.3 Metric聚合 一、数据聚合 聚合aggregations可以让我们极其方便的实现对数据的统计、分析、运算。例如 什么品牌的手机最受欢迎 这些手机的平均价格、最高价格、最低价格 这些手机每月的销售情况如何 ES实现这些统计功能比数据库的sql要方便的多而且查询速度非常快可以实现近实时搜索效果。 聚合常见的有三类 桶Bucket聚合用来对文档做分组 TermAggregation按照文档字段值分组例如按照品牌值分组、按照国家分组 Date Histogram按照日期阶梯分组例如一周为一组或者一月为一组 度量Metric聚合用来计算一些值比如最大值、最小值、平均值等 Avg求平均值 Max求最大值 Min求最小值 Stats同时求max、min、avg、sum等 管道pipeline聚合将其它聚合的结果为基础做进一步做深层次的运算(聚合) 注意参加聚合的字段必须是keyword、日期、数值、布尔类型  1.1 DSL实现聚合 与之前的搜索功能类似我们依然先学习DSL的语法再学习JavaAPI.  1.1.1 Bucket聚合  例如我们要统计所有商品中共有哪些商品分类其实就是以分类category字段对数据分组。category值一样的放在同一组属于Bucket聚合中的Term聚合。  基本语法如下  # 聚合 GET /goods/_search {query: {match_all: {}}, // 当没有条件(查询所有)的时候可以省略aggs: { // 定义聚合cate_agg: { // 给聚合起个名字随意terms: { // 聚合类型terms词条类型的field: category, // 参与聚合的字段size: 20 // 希望获取聚合结果的数量默认20}}},size:0 //在查询过程中不仅仅会把聚合结果返回给我们同时还会把搜索结果的数据返回给我们设置size为0就是不需要返回文档信息。如果不设置size默认为10 } 语法说明 size在查询过程中不仅仅会把聚合结果返回给我们同时还会把搜索结果的数据返回给我们设置size为0就是不需要返回文档信息。如果不设置size默认为10 aggs定义聚合 cate_agg聚合名称自定义但不能重复 terms聚合的类型按分类聚合所以用term field参与聚合的字段名称 size希望返回的聚合结果的最大数量 查询的结果  这个就有点类始于Sql语句select  category,count(*)  from goods group by category 一次可以获取多个聚合 1.1.2 带条件聚合 默认情况下Bucket聚合是对索引库的所有文档做聚合我们可以限定要聚合的文档范围只要添加query条件即可。 例如查询价格高于1000元的手机品牌有哪些 我们需要从需求中分析出搜索查询的条件和聚合的目标 搜索查询条件 价格高于1000 必须是手机 聚合目标统计的是品牌肯定是对brand字段做term聚合 语法如下 # 聚合 GET /goods/_search {query: {bool: {filter: [{term: {category: 手机}},{range: {price: {gt: 1000}}}]}},aggs: {brand_agg:{terms: {field: brand,size: 20}}},size:0 } 聚合结果如下 可以看到结果中只剩下1个品牌了。。。 1.1.3 Metric聚合 除了对数据分组Bucket以外我们还可以对每个Bucket内的数据进一步做数据计算和统计。 例如想知道手机有哪些品牌每个品牌的价格最小值、最大值、平均值。 语法如下 # 聚合 GET /goods/_search {query: {bool: {filter: [{term: {category: 手机}}]}},aggs: {brand_agg:{terms: {field: brand,size: 20},aggs: { // 对品牌分组的结果再进行聚合price_stats: { // 聚合名称随意stats: { // 聚合类型Avg求平均值Max求最大值Min求最小值Stats同时求max、min、avg、sum。field: price // 要聚合字段}}}}},size:0 } 可以看到我们在brand_agg聚合的内部我们新加了一个aggs参数。这个聚合就是brand_agg的子聚合会对brand_agg形成的每个桶中的文档分别统计。 price_stats聚合名称 stats聚合类型stats是metric聚合的一种 field聚合字段这里选择price统计价格 由于stats是对brand_agg形成的每个品牌桶内文档分别做统计因此每个品牌都会统计出自己的价格最小、最大、平均值。  结果如下 另外我们还可以让聚合按照每个品牌的价格平均值排序  1.1.4 总结 aggs代表聚合与query同级此时query的作用是 限定聚合的的文档范围 聚合必须的三要素 聚合名称 聚合类型 聚合字段 聚合可配置属性有 size指定聚合结果数量 order指定聚合结果排序方式 field指定聚合字段  2.1 RestClient实现聚合 可以看到在DSL中aggs聚合条件与query条件是同一级别都属于查询JSON参数。因此依然是利用request.source()方法来设置。不过聚合条件的要利用AggregationBuilders这个工具类来构造。 2.1.1 Bucket聚合 DSL与JavaAPI的语法对比如下 聚合结果解析对比 完整代码 Testpublic void testAgg() throws IOException {// 1.创建Request对象SearchRequest request new SearchRequest(goods);// 2.准备请求参数request.source().size(0);// 2.1 聚合参数request.source().aggregation(AggregationBuilders.terms(brandAgg).field(brand).size(5));// 3.发送请求SearchResponse response restHighLevelClient.search(request, RequestOptions.DEFAULT);// 4.解析聚合结果Aggregations aggregations response.getAggregations();// 4.1 获取品牌聚合Terms brandAgg aggregations.get(brandAgg);// 4.2 获取聚合中的桶List? extends Terms.Bucket buckets brandAgg.getBuckets();// 4.3 遍历桶内数据for (Terms.Bucket bucket : buckets) {// 4.4 获取桶内keySystem.out.println(key bucket.getKeyAsString());System.out.println(count bucket.getDocCount());}} 执行结果 2.1.2 带条件聚合 例如查询价格高于1000元的手机品牌有哪些 DSL与JavaAPI的语法对比如下 Java代码如下 Testpublic void testConditionAgg() throws IOException {// 1.创建Request对象SearchRequest request new SearchRequest(goods);// 2.准备请求参数BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery().filter(QueryBuilders.termQuery(category, 手机)).filter(QueryBuilders.rangeQuery(price).gt(1000));request.source().query(boolQueryBuilder);request.source().size(0);// 2.1 聚合参数request.source().aggregation(AggregationBuilders.terms(brandAgg).field(brand).size(5));// 3.发送请求SearchResponse response restHighLevelClient.search(request, RequestOptions.DEFAULT);// 4.解析聚合结果Aggregations aggregations response.getAggregations();// 4.1 获取品牌聚合Terms brandAgg aggregations.get(brandAgg);// 4.2 获取聚合中的桶List? extends Terms.Bucket buckets brandAgg.getBuckets();// 4.3 遍历桶内数据for (Terms.Bucket bucket : buckets) {// 4.4 获取桶内keySystem.out.println(key bucket.getKeyAsString());System.out.println(count bucket.getDocCount());}} 执行结果 可以看到结果中只剩下1个品牌了。。。 2.2.3 Metric聚合 例如想知道手机有哪些品牌每个品牌的价格最小值、最大值、平均值。 DSL与JavaAPI的语法对比如下 结果解析对比 完整代码如下 Testpublic void testAgg() throws IOException {// 1.创建Request对象SearchRequest request new SearchRequest(goods);// 2.准备请求参数BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery().filter(QueryBuilders.termQuery(category, 手机));request.source().query(boolQueryBuilder);request.source().size(0);// 2.1 聚合参数request.source().aggregation(AggregationBuilders.terms(brandAgg).field(brand).size(5).order(// 排序true:升序(asc)false:降序(desc)BucketOrder.aggregation(priceStats.avg, false) ).subAggregation(AggregationBuilders.stats(priceStats).field(price)));// 3.发送请求SearchResponse response restHighLevelClient.search(request, RequestOptions.DEFAULT);// 4.解析聚合结果Aggregations aggregations response.getAggregations();// 4.1 获取品牌聚合Terms brandAgg aggregations.get(brandAgg);// 4.2 获取聚合中的桶List? extends Terms.Bucket buckets brandAgg.getBuckets();// 4.3 遍历桶内数据for (Terms.Bucket bucket : buckets) {// 4.4 获取桶内keySystem.out.println(key bucket.getKeyAsString());System.out.println(count bucket.getDocCount());Aggregations subAgg bucket.getAggregations();Stats priceStats subAgg.get(priceStats);System.out.println(min priceStats.getMin());System.out.println(max priceStats.getMax());System.out.println(avg priceStats.getAvg());System.out.println(sum priceStats.getSum());}} 执行结果 感谢大家的阅读
http://www.hkea.cn/news/14357034/

相关文章:

  • 网站登录和权限怎么做国际购物平台
  • 学计算机的做网站的叫什么工作网页设计师培训机构费用价格多少
  • 太原响应式网站建设造价材料价格信息网
  • 美食网站开发与设计报告徐州低成本建站
  • 关于门户网站建设经费的报告html代码分享
  • 网站怎么做链接宝塔搭建wordpress
  • 途牛旅游网站建设目的敦煌网外贸平台
  • 网站开发程序员是做什么的网站开发智能化方向
  • 蔡家坡网站开发茅台酒网站建设方案
  • wordpress分享视频网站wordpress文章和页面
  • 网站开发飞沐信息手机网站模板下载软件
  • 黄冈网站建设优化排名上海 松江 网站制作
  • php网站建设学习制作logo免费
  • 网站系统设计咨询公司
  • g2g有哪些网站会展设计
  • 中山网站建设seo135电商办公室
  • 各大免费推广网站怎么用2013做网站
  • 自建网站做网上超市可行吗那个视频网站可以做桌面背景
  • 永康网站网站建设人与狗做的网站谁有
  • 南宁网站建设 南宁联达亿东莞网站推广服务
  • 本地营销型网站建设做网站和app有什么区别
  • 长沙网站推广系统主要怎么学的呢
  • flask做的网站 网址建设工程施工合同下载
  • 西安建设网站公司哪家好创业园网站建设
  • 做一般的公司门户网站投资额图书馆主题 wordpress
  • 移动商城的推广方法百度seo整站优化
  • 江苏中益建设官方网站做胃镜需那好天津津门网站A
  • 塔城地区建设工程信息网站效果好的网站建
  • 商店网站源码上海展览设计制作公司
  • 福州企业网站建设wordpress用户注册收不到邮件