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

四川省住房和城乡建设厅门户网站wordpress 404 插件

四川省住房和城乡建设厅门户网站,wordpress 404 插件,上门做网站哪里有,甘肃美容网站建设文章目录 搜索聚合高阶概念 搜索 即从一个索引下按照特定的字段或关键词搜索出符合用户预期的一个或者一堆cocument#xff0c;然后根据文档的相关度得分#xff0c;在返回的结果集里并根据得分对这些文档进行一定的排序。 聚合 根据业务需求#xff0c;对文档中的某个或… 文章目录 搜索聚合高阶概念 搜索 即从一个索引下按照特定的字段或关键词搜索出符合用户预期的一个或者一堆cocument然后根据文档的相关度得分在返回的结果集里并根据得分对这些文档进行一定的排序。 聚合 根据业务需求对文档中的某个或某几个字段进行数据的分组并做一些指标数据的统计分析比如要计算一批文档中某个业务字段的总数平均数最大最小值等都属于聚合的范畴。 以上两个概念后是理解下面实验的基础如果是传统关系数据库mysql、oracle等存储的数据也可以搜索和聚合但是在数据聚合分析一块毕竟不是它们的强项而且需要在程序中做大量的处理耗时费力尤其是大数据量的情况下就有些力不从心了。 但在es中由于内置了聚合统计的相关功能只需要使用好它的语法即可达到几近实时的聚合统计和搜索花费时间基本上没有太大差别因此使用es很适合在数据量大的业务场景下做聚合统计与分析。 高阶概念 Buckets(桶/集合):满足特定条件的文档的集合Metrics(指标):对桶内的文档进行统计计算(例如最小值,求和,最大值等) 在聚合统计分析中使用很频繁的一个名词叫 aggs它是聚合的关键词之一下面就用实验来演示一下使用aggs进行数据聚合的多种场景。 1、实验准备数据首先往es整合批量插入一些实验数据这里我们以一个家电卖场的电视为背景进行模拟 设定文档中field的相关分词属性。 PUT http://192.168.56.235:9201/demo2{setting:{index:{number_of_shards:5,number_of_replicats:1}},mappings:{sales:{properties:{price:{type:long},color:{type:keyword},brand:{type:keyword},sold_date:{type:date}}}} } 2、批量插入数据 POST http://192.168.56.235:9201/demo2/sales{ price : 1000, color : 红色, brand : 长虹, sold_date : 2016-10-28 } { price : 2000, color : 红色, brand : 长虹, sold_date : 2016-11-05 } { price : 3000, color : 绿色, brand : 小米, sold_date : 2017-05-18 } { price : 1500, color : 蓝色, brand : TCL, sold_date : 2017-07-02 } { price : 1200, color : 绿色, brand : TCL, sold_date : 2018-08-19 } { price : 2000, color : 红色, brand : 长虹, sold_date : 2017-11-05 } { price : 8000, color : 红色, brand : 三星, sold_date : 2017-01-01 } { price : 2500, color : 蓝色, brand : 小米, sold_date : 2018-02-12 } 数据准备完毕 2、按照颜色分组统计各种颜色电视的数量 查询语法如下 GET http://192.168.56.235:9201/demo2/sales/_search {size:0,aggs:{group_color:{terms:{field:color}}} } 查询结果如下这里简单对其中的几个参数和结果名称做一下说明。 在查询语句中 size:0表示聚合查询的结果不需要返回中间的文档内容group_color 我们自定义的分组名字最好是见名知意的 在返回结果中 hits:{},这部分存放的是返回结果的基本统计结果如果上面的size制指定了不为0文档内容则会放在这个里面buckets存放聚合后的统计结果详细信息以key-value的形式展现 3、按照颜色分组统计各种颜色电视的数量并在此基础上统计出各种颜色电视的平均价格 分析 按照color去分bucket可以拿到每个color bucket中的数量这个仅仅只是一个bucket操作 doc_count其实只是es的bucket操作默认执行的一个内置metric。 在一个aggs执行的bucket操作terms平级的json结构下再加一个aggs这个第二个aggs内部同样取个名字执行一个metric操作avg对之前的每个bucket中的数据的指定的field、price field求一个平均值 就是一个metric就是一个对一个bucket分组操作之后对每个bucket都要执行的一个metric也可以理解成功嵌套聚合在es中获取到某个指标的数据后继续对这个指标的数据进行其他聚合分析也被叫做下钻 该需求查询语句如下 {size:0,aggs:{group_color:{terms:{field:color},aggs:{avg_color_price:{avg:{field:price}}}}} } 返回结果如下通过结果可以很清晰的看出来在颜色统计分析的基础上每一个{}里面还增加了一个指标即自定义的计算平均值的avg_color_price这个查询几乎是毫秒级的基本没有延迟如果转化为sql查询应该是这样的 select avg(price) from tvs.sales group by color 4、根据颜色分组求出每种颜色的电视价格的最大值最小值平均值 {size:0,aggs:{group_by_color:{terms:{field:color},aggs:{max_price:{max:{field:price}},min_price:{min:{field:price}},avg_price:{avg:{field:price}}}}} } 所得结果如下 {took: 4,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 7,max_score: 0,hits: []},aggregations: {group_by_color: {doc_count_error_upper_bound: 0,sum_other_doc_count: 0,buckets: [{key: 红色,doc_count: 4,max_price: {value: 8000},min_price: {value: 1000},avg_price: {value: 3250}},{key: 蓝色,doc_count: 2,max_price: {value: 2500},min_price: {value: 1500},avg_price: {value: 2000}},{key: 绿色,doc_count: 1,max_price: {value: 1200},min_price: {value: 1200},avg_price: {value: 1200}}]}} } 5、按照不同的价格区间对电视进行划分并求出每个价格区间的电视的平均价格 在es中根据区间间隔划分有一个叫做 histogram的语法可以帮助我们执行类似于terms也是进行bucket分组操作接收一个field按照这个field的值的各个范围区间进行bucket分组操作。 “histogram”:{“field”: “price”,“interval”: 2000 }, interval2000划分范围0 ~ 20002000 ~ 40004000 ~ 60006000 ~ 80008000 ~ 10000buckets根据price的值比如2500看落在哪个区间内比如2000 ~ 4000此时就会将这条数据放入2000 ~ 4000对应的那个bucket中bucket划分的方法terms将field值相同的数据划分到一个bucket中bucket有了之后一样的去对每个bucket执行avgcountsummaxmin等各种metric操作聚合分析 {size:0,aggs:{interval_price:{histogram:{field:price,interval:2000},aggs:{revenue:{avg:{field:price}}}}} } 查询的结果如下可以看到按照2000一个等级将所有电视的价格划分在不同的区间了并将每个区间的价格平均值统计了出来 {took: 7,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 7,max_score: 0,hits: []},aggregations: {interval_price: {buckets: [{key: 0,doc_count: 3,revenue: {value: 1233.3333333333333}},{key: 2000,doc_count: 3,revenue: {value: 2166.6666666666665}},{key: 4000,doc_count: 0,revenue: {value: null}},{key: 6000,doc_count: 0,revenue: {value: null}},{key: 8000,doc_count: 1,revenue: {value: 8000}}]}} } 6、按照不同的时间区间对电视进行划分并求出每个价格区间的电视的平均价格 date histogram按照我们指定的某个date类型的日期field以及日期interval按照一定的日期间隔去划分bucket这个概念的理解和上一个有点类似可以对照理解。 date interval 1 month 2017-01-01~2017-01-31就是一个bucket 2017-02-01~2017-02-28就是一个bucket 然后会去扫描每个数据的date field判断date落在哪个bucket中就将其放入那个bucket 2017-01-05就将其放入2017-01-01~2017-01-31就是一个bucket min_doc_count即使某个日期interval2017-01-01~2017-01-31中一条数据都没有那么这个区间也是要返回的不然默认是会过滤掉这个区间的 extended_boundsminmax划分bucket的时候会限定在这个起始日期和截止日期内 根据上述分析我们构建查询语句 {size:0,aggs:{sales:{date_histogram:{field:sold_date,interval:month,format:yyyy-MM-dd,min_doc_count:0,extended_bounds:{min:2017-01-01,max:2018-12-31}}}} } 返回结果如下按照月份将指定区间内各个月份的数量做了统计 当然如果我们觉得按照月份统计粒度太细也可以根据季度对数据进行统计只需要将month换成quarter即可查询语法如下 {size:0,aggs:{sales:{date_histogram:{field:sold_date,interval:quarter,format:yyyy-MM-dd,min_doc_count:0,extended_bounds:{min:2017-01-01,max:2018-12-31}}}} } 查询结果如下
http://www.dnsts.com.cn/news/123189.html

相关文章:

  • 一个网站开发成本服饰网站建设规划书
  • 暖色调网页设计网站iis网站无法启动
  • 怎么做网站代拍网络运维工程师自学
  • 网站开发服务器架设做网站的公司哪好
  • 济南做网站哪里好网站开发属于程序员吗
  • 建设通类型网站叫啥怎样注册网站中文域名
  • 网站页头制作seoul是什么意思中文
  • 河池建设银行招聘网站wap网站开发
  • 基于php+mysql的网站开发镇江发布通知
  • html可以做网站后台吗wordpress公众号涨粉
  • 免费网站入口2022伊园城市建设网站aqq
  • 什么软件做网站好什么是网站空间
  • 做网站推广托管注意网站建设大概要多少钱
  • 房地产门户网站做网站编辑的感受
  • 企业只有建立了自己的网站预约型网站模板源码
  • 企业门户网站建设信息网页界面设计宽度和安全区
  • 物流网站建设模板谷歌平台推广外贸
  • 营销型网站重要特点是?可以安装两个wordpress
  • 建设网站哪些公司好淮阳住房和城乡建设网站
  • 营销网站设计公司招聘手机wordpress怎么保存图片大小
  • 拓和科技有限公司网站wordpress外贸网站
  • 传统企业建设网站的内容精选网站建立 推广 优化
  • wordpress站外搜索响应式网站设计的要求
  • 淄博网站建设电话wordpress付费主题分享
  • 网站短链接生成器即买即送的网站有哪些
  • 临沂网站建设铭镇wordpress 跑马灯
  • 垂直网站建设方案比如做百度知道 .html,这些都是我们不可控制的网站!
  • 网站备案太久了wordpress语言切换 seo
  • 深圳公司建设网站制作网站开发课程报告心得
  • 做网站的域名怎样买镇江交叉口优化