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

北京建设执业资格注册网站哪里可以学效果图制作

北京建设执业资格注册网站,哪里可以学效果图制作,北京网站设计济南兴田德润评价,网站实用性文章目录 系列文章索引一、指标聚合与分类1、什么是指标聚合#xff08;Metric#xff09;2、Metric聚合分析分为单值分析和多值分析两类3、概述 二、单值分析API设计1、Avg(平均值)#xff08;1#xff09;对所有文档进行avg聚合#xff08;DSL#xff09;#xff08;2… 文章目录 系列文章索引一、指标聚合与分类1、什么是指标聚合Metric2、Metric聚合分析分为单值分析和多值分析两类3、概述 二、单值分析API设计1、Avg(平均值)1对所有文档进行avg聚合DSL2对筛选后的文档聚合3根据Script计算平均值4总结 2、Max(最大值)1统计所有文档2统计过滤后的文档 3、Min(最小值)1统计所有文档2统计筛选后的文档 4、Sum(总和)1统计所有文档汇总 5、Cardinality(唯一值)1统计所有文档2统计筛选后的文档 三、多值分析API设计1、Stats Aggregation1统计所有文档2统计筛选文档 2、扩展状态统计1统计所有文档2统计筛选后的文档 3、百分位度量/百分比统计1统计所有文档2统计筛选后的文档 4、百分位等级/百分比排名聚合1统计所有文档2统计过滤后的文档 四、JavaAPI实现 系列文章索引 Elasticsearch实战一Springboot实现Elasticsearch统一检索功能 Elasticsearch实战二Springboot实现Elasticsearch自动汉字、拼音补全Springboot实现自动拼写纠错 Elasticsearch实战三Springboot实现Elasticsearch搜索推荐 Elasticsearch实战四Springboot实现Elasticsearch指标聚合与下钻分析 Elasticsearch实战五Springboot实现Elasticsearch电商平台日志埋点与搜索热词 一、指标聚合与分类 1、什么是指标聚合Metric 聚合分析是数据库中重要的功能特性完成对某个查询的数据集中数据的聚合计算 如找出某字段或计算表达式的结果的最大值、最小值计算和、平均值等。 ES作为搜索引擎兼数据库同样提供了强大的聚合分析能力。 对一个数据集求最大值、最小值计算和、平均值等指标的聚合在ES中称为指标聚合。 2、Metric聚合分析分为单值分析和多值分析两类 1、单值分析只输出一个分析结果 min,max,avg,sum,cardinalitycardinality 求唯一值即不重复的字段有多少相当于mysql中的distinct 2、多值分析输出多个分析结果 stats,extended_stats,percentile,percentile_rank 3、概述 官网https://www.elastic.co/guide/en/elasticsearch/reference/7.4/search-aggregations-metrics.html 语法 aggregations : {aggregation_name : { !--聚合的名字 --aggregation_type : { !--聚合的类型 --aggregation_body !--聚合体对哪些字段进行聚合 --}[,meta : { [meta_data_body] } ]? !--元 --[,aggregations : { [sub_aggregation] } ]? !--在聚合里面在定义子聚合--}[,aggregation_name_2 : { ... } ]* !--聚合的名字 -- }openAPI设计目标与原则 1、DSL调用与语法进行高度抽象参数动态设计 2、Open API通过结果转换器支持上百种组合调用qurey,constant_score,match/matchall/filter/sort/size/frm/higthlight/_source/includes 3、逻辑处理公共调用提升API业务处理能力 4、保留原生API与参数的用法 二、单值分析API设计 1、Avg(平均值) 从聚合文档中提取的价格的平均值。 1对所有文档进行avg聚合DSL POST product_list_info/_search {size: 0,aggs: {result: {avg: {field: price}}} }以上汇总计算了所有文档的平均值。 “size”: 0, 表示只查询文档聚合数量不查文档如查询50size50 aggs表示是一个聚合 result可自定义聚合后的数据将显示在自定义字段中 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {avg: {field: price}}}} }2对筛选后的文档聚合 POST product_list_info/_search {size: 0,query: {term: {onelevel: 手机通讯}},aggs: {result: {avg: {field: price}}} }OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,query: {term: {onelevel: 手机通讯}},aggs: {result: {avg: {field: price}}}} }3根据Script计算平均值 es所使用的脚本语言是painless这是一门安全-高效的脚本语言,基于jvm的 #统计所有 POST product_list_info/_search?size0 {aggs: {result: {avg: {script: {source: doc.evalcount.value}}}} } 结果value : 599929.2282791147 source: doc[evalcount] source: doc.evalcount#有条件 POST product_list_info/_search?size0 {query: {term: {onelevel: 手机通讯}},aggs: {czbk: {avg: {script: {source: doc.evalcount}}}} } 结果value : 600055.6935087288OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {czbk: {avg: {script: {source: doc.evalcount}}}}} }4总结 avg平均 1、统一avg所有文档 2、有条件avg部分文档 3、脚本统计所有 4、脚本统计部分 2、Max(最大值) 计算从聚合文档中提取的数值的最大值。 1统计所有文档 POST product_list_info/_search {size: 0,aggs: {result: {max: {field: price}}} }结果 “value” : 9.9999999E7 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {max: {field: price}}}} }2统计过滤后的文档 POST product_list_info/_search {size: 0,query: {term: {onelevel: 手机通讯}},aggs: {result: {max: {field: price}}} }结果 “value” : 2474000.0 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,query: {term: {onelevel: 手机通讯}},aggs: {czbk: {max: {field: price}}}} }结果 “value” : 2474000.0 3、Min(最小值) 计算从聚合文档中提取的数值的最小值。 1统计所有文档 POST product_list_info/_search {size: 0,aggs: {result: {min: {field: price}}} }结果“value”: 0.0 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {min: {field: price}}}} }2统计筛选后的文档 POST product_list_info/_search {size: 1,query: {term: {onelevel: 手机通讯}},aggs: {czbk: {min: {field: price}}} }结果“value”: 0.0 参数size1可查询出金额为0的数据 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 1,query: {term: {onelevel: 手机通讯}},aggs: {result: {min: {field: price}}}} }4、Sum(总和) 1统计所有文档汇总 POST product_list_info/_search {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {sum: {field: price}}} }结果“value” : 3.433611809E7 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {sum: {field: price}}}} }5、Cardinality(唯一值) Cardinality Aggregation基数聚合。它属于multi-value基于文档的某个值可以是特定的字段也可以通过脚本计算而来计算文档非重复的个数去重计数相当于sql中的distinct。 cardinality 求唯一值即不重复的字段有多少相当于mysql中的distinct 1统计所有文档 POST product_list_info/_search {size: 0,aggs: {result: {cardinality: {field: storename}}} }结果“value” : 103169 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {cardinality: {field: storename}}}} }2统计筛选后的文档 POST product_list_info/_search {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {cardinality: {field: storename}}} }OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {cardinality: {field: storename}}}} }三、多值分析API设计 1、Stats Aggregation Stats Aggregation统计聚合。它属于multi-value基于文档的某个值可以是特定的数值型字段也可以通过脚本计算而来计算出一些统计信息min、max、sum、count、avg 5个值 1统计所有文档 POST product_list_info/_search {size: 0,aggs: {result: {stats: {field: price}}} }返回 aggregations : {result : {count : 5072447,min : 0.0,max : 9.9999999E7,avg : 920.1537270512633,sum : 4.66743101232E9OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {stats: {field: price}}}} }2统计筛选文档 POST product_list_info/_search {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {stats: {field: price}}} }OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {stats: {field: price}}}} }2、扩展状态统计 Extended Stats Aggregation扩展统计聚合。它属于multi-value比stats多4个统计结果 平方和、方差、标准差、平均值加/减两个标准差的区间 1统计所有文档 POST product_list_info/_search {size: 0,aggs: {result: {extended_stats: {field: price}}} } 返回 aggregations : {result : {count : 5072447,min : 0.0,max : 9.9999999E7,avg : 920.1537270512633,sum : 4.66743101232E9,sum_of_squares : 2.0182209054045464E16,variance : 3.9779448262354884E9,std_deviation : 63070.950731977144,std_deviation_bounds : {upper : 127062.05519100555,lower : -125221.74773690302}sum_of_squares:平方和 variance方差 std_deviation标准差 std_deviation_bounds标准差的区间 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {extended_stats: {field: price}}}} }2统计筛选后的文档 POST product_list_info/_search {size: 1,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {extended_stats: {field: price}}} }结果; aggregations : {result : {count : 12402,min : 0.0,max : 2474000.0,avg : 2768.595233833253,sum : 3.433611809E7,sum_of_squares : 6.445447222627729E12,variance : 5.120451870452684E8,std_deviation : 22628.41547800615,std_deviation_bounds : {upper : 48025.42618984555,lower : -42488.23572217905sum_of_squares:平方和 variance方差 std_deviation标准差 std_deviation_bounds标准差的区间 OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 1,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {czbk: {extended_stats: {field: price}}}} }3、百分位度量/百分比统计 Percentiles Aggregation百分比聚合。它属于multi-value对指定字段脚本的值按从小到大累计每个值对应的文档数的占比占所有命中文档数的百分比返回指定占比比例对应的值。默认返回[1, 5, 25, 50, 75, 95, 99 ]分位上的值。 它们表示了人们感兴趣的常用百分位数值。 1统计所有文档 POST product_list_info/_search {size: 0,aggs: {result: {percentiles: {field: price}}} }返回: aggregations : {result : {values : {1.0 : 0.0,5.0 : 15.021825109603165,25.0 : 58.669333121791,50.0 : 139.7398105623917,75.0 : 388.2363222057536,95.0 : 3630.78148822216,99.0 : 12561.562823894474}}OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {percentiles: {field: price}}}} }2统计筛选后的文档 POST product_list_info/_search {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {percentiles: {field: price}}} }OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {percentiles: {field: price}}}} }4、百分位等级/百分比排名聚合 百分比排名聚合这里有另外一个紧密相关的度量叫 percentile_ranks 。 percentiles 度量告诉我们落在某个百分比以下的所有文档的最小值。 1统计所有文档 统计价格在15元之内统计价格在30元之内文档数据占有的百分比 tips 统计数据会变化 这里的15和30完全可以理解万SLA的200比较字段不一样而已 POST product_list_info/_search {size: 0,aggs: {result: {percentile_ranks: {field: price,values: [15,30]}}} }返回 价格在15元之内的文档数据占比是4.92% 价格在30元之内的文档数据占比是12.72% aggregations : {result : {values : {15.0 : 4.92128378837021,30.0 : 12.724827959646579}} }OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,aggs: {result: {percentile_ranks: {field: price,values: [15,30]}}}} }2统计过滤后的文档 POST product_list_info/_search {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {percentile_ranks: {field: price,values: [15,30]}}} }OpenAPI查询参数设计 {indexName: product_list_info,map: {size: 0,query: {constant_score: {filter: {match: {threelevel: 手机}}}},aggs: {result: {percentile_ranks: {field: price,values: [15,30]}}}} }四、JavaAPI实现 调用metricAgg方法传参CommonEntity 。 /** Description: 指标聚合(Open)* Method: metricAgg* Param: [commonEntity]* Update:* since: 1.0.0* Return: java.util.Mapjava.lang.String,java.lang.Long**/ public MapObject, Object metricAgg(CommonEntity commonEntity) throws Exception {//查询公共调用,将参数模板化SearchResponse response getSearchResponse(commonEntity);//定义返回数据MapObject, Object map new HashMapObject, Object();// 此处完全可以返回ParsedAggregation 不用instance弊端是返回的数据字段多、get的时候需要写死下面循环map为的是动态获取keyMapString, Aggregation aggregationMap response.getAggregations().asMap();// 将查询出来的数据放到本地局部线程变量中SearchTools.setResponseThreadLocal(response);//此处循环一次目的是动态获取client端传来的【result】for (Map.EntryString, Aggregation m : aggregationMap.entrySet()) {//处理指标聚合metricResultConverter(map, m);}//公共数据处理mbCommonConverter(map);return map; } /** Description: 查询公共调用,参数模板化* Method: getSearchResponse* Param: [commonEntity]* Update:* since: 1.0.0* Return: org.elasticsearch.action.search.SearchResponse**/ private SearchResponse getSearchResponse(CommonEntity commonEntity) throws Exception {//定义查询请求SearchRequest searchRequest new SearchRequest();//指定去哪个索引查询searchRequest.indices(commonEntity.getIndexName());//构建资源查询构建器主要用于拼接查询条件SearchSourceBuilder sourceBuilder new SearchSourceBuilder();//将前端的dsl查询转化为XContentParserXContentParser parser SearchTools.getXContentParser(commonEntity);//将parser解析成功查询APIsourceBuilder.parseXContent(parser);//将sourceBuilder赋给searchRequestsearchRequest.source(sourceBuilder);//执行查询SearchResponse response client.search(searchRequest, RequestOptions.DEFAULT);return response; } /** Description: 指标聚合结果转化器* Method: metricResultConverter* Param: [map, m]* Update:* since: 1.0.0* Return: void**/ private void metricResultConverter(MapObject, Object map, Map.EntryString, Aggregation m) {//平均值if (m.getValue() instanceof ParsedAvg) {map.put(value, ((ParsedAvg) m.getValue()).getValue());}//最大值else if (m.getValue() instanceof ParsedMax) {map.put(value, ((ParsedMax) m.getValue()).getValue());}//最小值else if (m.getValue() instanceof ParsedMin) {map.put(value, ((ParsedMin) m.getValue()).getValue());}//求和else if (m.getValue() instanceof ParsedSum) {map.put(value, ((ParsedSum) m.getValue()).getValue());}//不重复的值else if (m.getValue() instanceof ParsedCardinality) {map.put(value, ((ParsedCardinality) m.getValue()).getValue());}//扩展状态统计else if (m.getValue() instanceof ParsedExtendedStats) {map.put(count, ((ParsedExtendedStats) m.getValue()).getCount());map.put(min, ((ParsedExtendedStats) m.getValue()).getMin());map.put(max, ((ParsedExtendedStats) m.getValue()).getMax());map.put(avg, ((ParsedExtendedStats) m.getValue()).getAvg());map.put(sum, ((ParsedExtendedStats) m.getValue()).getSum());map.put(sum_of_squares, ((ParsedExtendedStats) m.getValue()).getSumOfSquares());map.put(variance, ((ParsedExtendedStats) m.getValue()).getVariance());map.put(std_deviation, ((ParsedExtendedStats) m.getValue()).getStdDeviation());map.put(lower, ((ParsedExtendedStats) m.getValue()).getStdDeviationBound(ExtendedStats.Bounds.LOWER));map.put(upper, ((ParsedExtendedStats) m.getValue()).getStdDeviationBound(ExtendedStats.Bounds.UPPER));}//状态统计else if (m.getValue() instanceof ParsedStats) {map.put(count, ((ParsedStats) m.getValue()).getCount());map.put(min, ((ParsedStats) m.getValue()).getMin());map.put(max, ((ParsedStats) m.getValue()).getMax());map.put(avg, ((ParsedStats) m.getValue()).getAvg());map.put(sum, ((ParsedStats) m.getValue()).getSum());}//百分位等级else if (m.getValue() instanceof ParsedTDigestPercentileRanks) {for (IteratorPercentile iterator ((ParsedTDigestPercentileRanks) m.getValue()).iterator(); iterator.hasNext(); ) {Percentile p (Percentile) iterator.next();map.put(p.getValue(), p.getPercent());}}//百分位度量else if (m.getValue() instanceof ParsedTDigestPercentiles) {for (IteratorPercentile iterator ((ParsedTDigestPercentiles) m.getValue()).iterator(); iterator.hasNext(); ) {Percentile p (Percentile) iterator.next();map.put(p.getPercent(), p.getValue());}}}/** Description: 公共数据处理(指标聚合、桶聚合)* Method: mbCommonConverter* Param: []* Update:* since: 1.0.0* Return: void**/ private void mbCommonConverter(MapObject, Object map) {if (!CollectionUtils.isEmpty(ResponseThreadLocal.get())) {//从线程中取出数据map.put(list, ResponseThreadLocal.get());//清空本地线程局部变量中的数据防止内存泄露ResponseThreadLocal.clear();}}
http://www.dnsts.com.cn/news/141409.html

相关文章:

  • asp.net网站设计有没有做相册的网站
  • 画册设计网站重庆有几个区
  • 平顶山网站建设电话网站用户告知书
  • 建站快车是什么怎么做网站策划
  • 临县网站建设军事新闻最新24小时
  • 网站开发与app开发原理整合营销中的4c指的是什么
  • 怎么用htlm5自己做网站建设旅游网站的价值
  • 网站建设运行情况简介吕子乔做网站吹的语录
  • 口碑好的做网站哈尔滨视频剪辑培训机构
  • 程序员个人网站开发asp.net网站开发实战
  • 网站后台模板 下载什么平台免费推广效果最好
  • 51ape是谁做的网站广州网络营销系统
  • 平面设计工作室网站网络营销的特点包括超前性
  • 大型免费网站制作深圳包装设计公司排名前十强
  • 仿织梦小说网站源码短网址免费生成
  • 网站 短链接怎么做微信的企业网站模板
  • 电商平台网站运营方案外贸网站建设方案
  • 特色食品网站建设策划书上海网络推广部
  • 公司做网站最好怎么进行网站推广
  • 留学生做留服证明在哪个网站安徽省建设工程资料上传网站
  • 常用网站字体网站制作方案中哪几个点比较重要
  • 做网站好公司哪家好北京建网站的公司哪个比较好
  • 室内设计效果图手绘图片大全朝阳网站seo
  • 点广告挣钱网站有哪些品牌网站建设优化公司哪家好
  • 建湖专业做网站创建网站运营费用
  • 做网站蓝色和什么颜色搭配好看ui和前端哪个前景好
  • 网站框架图中国空间站图片
  • 武冈市住房和城乡建设局网站广告投放跟网站建设一样吗
  • 网站游戏正规网站建设wordpress 海报
  • 做网站如何网站考虑优化网站做百度推广