网站优化推广seo公司,网站套站什么意思,企业展厅设计公司名称,十大设计创意网站提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 1.聚合(aggregations)基本概念桶#xff08;bucket#xff09;度量#xff08;metrics#xff09; 案例 11. 接下来按price字段进行分组#xff1a;2. 若想对所… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 1.聚合(aggregations)基本概念桶bucket度量metrics 案例 11. 接下来按price字段进行分组2. 若想对所有手机价格求平均值。 案例 21. 搜索address中包含mill的所有人的年龄分布以及平均年龄2. 按照年龄聚合并且请求这些年龄段的这些人的平均薪资3. 查出所有年龄分布并且这些年龄段中M的平均薪资和F的平均薪资以及这个年龄段的总体平均薪资 2.映射配置(_mapping)ElasticSearch7-去掉type概念 2.1 什么是映射映射是定义文档的过程文档包含哪些字段这些字段是否保存是否索引是否分词等 2.2 查看索引库中所有的属性的_mapping2.3 创建映射字段新增映射字段 2.4 更新映射2.5 数据迁移2.6 映射案例报错只因创建映射时tel的index为false。 1.聚合(aggregations)
聚合允许使用者对 es 文档进行统计分析类似与关系型数据库中的 group by当然还有很多其他的聚合例如取最大值max、平均值avg等等。
基本概念
Elasticsearch中的聚合包含多种类型最常用的两种一个叫 桶一个叫 度量
桶bucket 度量metrics 案例 1 1. 接下来按price字段进行分组 在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{aggs:{//聚合操作price_group:{//名称随意起名terms:{//分组field:price//分组字段}}}
}
返回结果如下
{took: 63,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 1,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]},aggregations: {price_group: {doc_count_error_upper_bound: 0,sum_other_doc_count: 0,buckets: [{key: 1999,doc_count: 5},{key: 3999,doc_count: 1}]}}
}
上面返回结果会附带原始数据的。若不想要不附带原始数据的结果 设置size:0
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{aggs:{price_group:{terms:{field:price}}},size:0
}
返回结果如下
{took: 60,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: null,hits: []},aggregations: {price_group: {doc_count_error_upper_bound: 0,sum_other_doc_count: 0,buckets: [{key: 1999,doc_count: 5},{key: 3999,doc_count: 1}]}}
} 2. 若想对所有手机价格求平均值。 在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{aggs:{price_avg:{//名称随意起名avg:{//求平均field:price}}},size:0
}
返回结果如下
{took: 14,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: null,hits: []},aggregations: {price_avg: {value: 2332.3333333333335}}
}
案例 2 1. 搜索address中包含mill的所有人的年龄分布以及平均年龄 2. 按照年龄聚合并且请求这些年龄段的这些人的平均薪资 3. 查出所有年龄分布并且这些年龄段中M的平均薪资和F的平均薪资以及这个年龄段的总体平均薪资 2.映射配置(_mapping) ElasticSearch7-去掉type概念 Elasticsearch 7.x URL中的type参数为可选。比如索引一个文档不再要求提供文档类型。 Elasticsearch 8.x 不再支持URL中的type参数。 解决将索引从多类型迁移到单类型每种类型文档一个独立索引 2.1 什么是映射
有了索引库等于有了数据库中的 database。接下来就需要建索引库(index)中的映射了类似于数据库(database)中的表结构(table)。
创建数据库表需要设置字段名称类型长度约束等索引库也一样需要知道这个类型下有哪些字段每个字段有哪些约束信息这就叫做映射(mapping) 映射是定义文档的过程文档包含哪些字段这些字段是否保存是否索引是否分词等 2.2 查看索引库中所有的属性的_mapping 2.3 创建映射字段 类型名称就是前面将的type的概念类似于数据库中的不同表
字段名类似于列名properties下可以指定许多字段。
每个字段可以有很多属性。例如
type类型可以是text、long、short、date、integer、object等index是否索引默认为truestore是否存储默认为falseanalyzer分词器这里使用ik分词器ik_max_word或者ik_smart 新增映射字段
如果我们创建完成索引的映射关系后又要添加新的字段的映射这时怎么办第一个就是先删除索引然后调整后再新建索引映射还有一个方式就在已有的基础上新增。
2.4 更新映射
对于存在的映射字段我们不能更新更新必须创建新的索引进行数据迁移
2.5 数据迁移 案例新创建了索引并指定了映射属性
2.6 映射案例 报错只因创建映射时tel的index为false。