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

龙华做网站的公司互联网保险的特点不包括

龙华做网站的公司,互联网保险的特点不包括,网站建设公司douyanet,商城网站设计需要哪些技术用处: 聚合(aggregations)可以极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何? 实现这些统计…

用处:

聚合(aggregations)可以极其方便的实现对数据的统计、分析、运算。例如:

  • 什么品牌的手机最受欢迎?
  • 这些手机的平均价格、最高价格、最低价格?
  • 这些手机每月的销售情况如何?

实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。

官方文档:

Aggregations | Elasticsearch Guide [7.12] | Elastic

聚合常见的有三类:

  • 桶(**Bucket****)**聚合:用来对文档做分组
    • TermAggregation:按照文档字段值分组,例如按照品牌值分组、按照国家分组
    • Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组
  • 度量(**Metric****)**聚合:用以计算一些值,比如:最大值、最小值、平均值等
    • Avg:求平均值
    • Max:求最大值
    • Min:求最小值
    • Stats:同时求maxminavgsum
  • 管道(**pipeline****)**聚合:其它聚合的结果为基础做进一步运算

:::color5
**注意:**参加聚合的字段必须是keyword、日期、数值、布尔类型

:::

DSL实现聚合

Bucket聚合

例如要统计所有商品中共有哪些商品分类,其实就是以分类(category)字段对数据分组。category值一样的放在同一组,属于Bucket聚合中的Term聚合。

基本语法:

GET /items/_search
{"size": 0, "aggs": {"category_agg": {"terms": {"field": "category","size": 20}}}
}

语法说明:

  • size:设置size为0,就是每页查0条,则结果中就不包含文档,只包含聚合
  • aggs:定义聚合
    • category_agg:聚合名称,自定义,但不能重复
      • terms:聚合的类型,按分类聚合,所以用term
        • field:参与聚合的字段名称
        • size:希望返回的聚合结果的最大数量

来看下查询的结果:

带条件聚合

  • 搜索查询条件:
    • 价格高于3000
    • 必须是手机
  • 聚合目标:统计的是品牌,肯定是对brand字段做term聚合

语法如下:

GET /items/_search
{"query": {"bool": {"filter": [{"term": {"category": "手机"}},{"range": {"price": {"gte": 300000}}}]}}, "size": 0, "aggs": {"brand_agg": {"terms": {"field": "brand","size": 20}}}
}

聚合结果如下:

{"took" : 2,"timed_out" : false,"hits" : {"total" : {"value" : 13,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"brand_agg" : {"doc_count_error_upper_bound" : 0,"sum_other_doc_count" : 0,"buckets" : [{"key" : "华为","doc_count" : 7},{"key" : "Apple","doc_count" : 5},{"key" : "小米","doc_count" : 1}]}}
}

Metric聚合

需要对桶内的商品做运算,获取每个品牌价格的最小值、最大值、平均值。

这就要用到Metric聚合了,例如stat聚合,就可以同时获取minmaxavg等结果。

语法如下:

GET /items/_search
{"query": {"bool": {"filter": [{"term": {"category": "手机"}},{"range": {"price": {"gte": 300000}}}]}}, "size": 0, "aggs": {"brand_agg": {"terms": {"field": "brand","size": 20},"aggs": {"stats_meric": {"stats": {"field": "price"}}}}}
}

query部分就不说了,我们重点解读聚合部分语法。

可以看到在brand_agg聚合的内部,新加了一个aggs参数。这个聚合就是brand_agg的子聚合,会对brand_agg形成的每个桶中的文档分别统计。

  • stats_meric:聚合名称
    • stats:聚合类型,stats是metric聚合的一种
      • field:聚合字段,这里选择price,统计价格

由于stats是对brand_agg形成的每个品牌桶内文档分别做统计,因此每个品牌都会统计出自己的价格最小、最大、平均值。

结果如下:

另外,还可以让聚合按照每个品牌的价格平均值排序:

RestClient实现聚合

可以看到在DSL中,aggs聚合条件与query条件是同一级别,都属于查询JSON参数。因此依然是利用request.source()方法来设置。

不过聚合条件的要利用AggregationBuilders这个工具类来构造。DSL与JavaAPI的语法对比如下:

聚合结果与搜索文档同一级别,因此需要单独获取和解析。具体解析语法如下:

完整代码如下:

@Test
void testAgg() throws IOException {// 1.创建RequestSearchRequest request = new SearchRequest("items");// 2.准备请求参数BoolQueryBuilder bool = QueryBuilders.boolQuery().filter(QueryBuilders.termQuery("category", "手机")).filter(QueryBuilders.rangeQuery("price").gte(300000));request.source().query(bool).size(0);// 3.聚合参数request.source().aggregation(AggregationBuilders.terms("brand_agg").field("brand").size(5));// 4.发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);// 5.解析聚合结果Aggregations aggregations = response.getAggregations();// 5.1.获取品牌聚合Terms brandTerms = aggregations.get("brand_agg");// 5.2.获取聚合中的桶List<? extends Terms.Bucket> buckets = brandTerms.getBuckets();// 5.3.遍历桶内数据for (Terms.Bucket bucket : buckets) {// 5.4.获取桶内keyString brand = bucket.getKeyAsString();System.out.print("brand = " + brand);long count = bucket.getDocCount();System.out.println("; count = " + count);}
}

总结

aggs代表聚合,与query同级,query的作用是:

  • 限定聚合的的文档范围

聚合必须的三要素:

  • 聚合名称
  • 聚合类型
  • 聚合字段

聚合可配置属性有:

  • size:指定聚合结果数量
  • order:指定聚合结果排序方式
  • field:指定聚合字段

文章转载自:

http://fXPDh5N1.nLpzb.cn
http://FRaD0OOm.nLpzb.cn
http://UtVshLNn.nLpzb.cn
http://c4HeAqwR.nLpzb.cn
http://lL5XMHD3.nLpzb.cn
http://8Gsnc7Fn.nLpzb.cn
http://YgKGqbDU.nLpzb.cn
http://R6xcVrBn.nLpzb.cn
http://rqtqSOjh.nLpzb.cn
http://93nDolTq.nLpzb.cn
http://Uzgo5YXD.nLpzb.cn
http://9HIne06G.nLpzb.cn
http://jC3qVoWl.nLpzb.cn
http://ZwZ3xJOe.nLpzb.cn
http://uSY23a3V.nLpzb.cn
http://RcWaumUZ.nLpzb.cn
http://sdo261z9.nLpzb.cn
http://eOlvQacH.nLpzb.cn
http://INMr3CFa.nLpzb.cn
http://GdaI1nnS.nLpzb.cn
http://GzHyGlbc.nLpzb.cn
http://miXIhzaf.nLpzb.cn
http://9mjo6iZe.nLpzb.cn
http://39VP7OXR.nLpzb.cn
http://j03QN88D.nLpzb.cn
http://dddIxWUv.nLpzb.cn
http://o9Hp0JA5.nLpzb.cn
http://mZublLMM.nLpzb.cn
http://UI40mV9T.nLpzb.cn
http://0jr4bHXc.nLpzb.cn
http://www.dtcms.com/wzjs/699554.html

相关文章:

  • 做网站收费 知乎WordPress注册不提示
  • 无锡本地做网站那一个网站可以教做甜品的
  • 网站建设归工商局管还是工信局管公众号商城
  • 网站配置域名简单又有创意的公司名称
  • 网站建设步骤详解视频教程惠州网站营销推广
  • 如何利用NAS做网站渠道营销推广方案
  • 怎么做网站搜索引擎服装设计方案
  • 东莞网网站公司简介国际 网站制作公司
  • 网站建设背景资料张店网站建设哪家好
  • 哪些网站可以做调查赚钱有什么网站是可以做动态图的
  • 只有图文的网站如何做培训网站建设公司排名
  • 标准网站建设报价单广州住房和建设局网站
  • 可以做很多个网站然后哭推广python语言好学吗
  • 大数据 做网站流量统计网站空间如何备份
  • 建设自己网站需要多钱大都会app官网下载
  • 深圳网站设计与开发无障碍网站建设
  • 网站建设深圳哪里学抖音粉丝购买网站
  • 婚庆影楼型网站开发网站服务器建设的三种方法是什么
  • 淘宝优惠券查询网站怎么做建立网站服务的公司网站
  • 专业手机网站制作哪家好wordpress 调查系统
  • 淄博企业网站建设价格宁德市人社局官网
  • 手机网站做成app深圳创业做什么项目好
  • html好看的网站wordpress 短信 插件
  • 网站如何做的看起来高大上怎么建设html网站
  • 秦皇岛网站推广价钱一个网站怎么做
  • 设计网站数据理卖做各视频网站的会员
  • 网站开发电脑设置外贸企业网站推广方案
  • 网站快照时间营销网站的主题 定位 修改建议
  • 好的做网站珠海建设网站首页
  • 单机游戏网页版网站排名seo教程