Elasticsearch高手系列:高手进阶篇(新第二版)

2020-06-01 00:00:00 数据 分析 集群 实战 聚合

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。


Elasticsearch的索引思路:

将磁盘里的东西尽量搬进内存,减少磁盘随机读取次数(同时也利用磁盘顺序读特性),结合各种奇技淫巧的压缩算法,用及其苛刻的态度使用内存。

所以,对于使用Elasticsearch进行索引时需要注意:

不需要索引的字段,一定要明确定义出来,因为默认是自动建索引的

同样的道理,对于String类型的字段,不需要analysis的也需要明确定义出来,因为默认也是会analysis的

选择有规律的ID很重要,随机性太大的ID(比如java的UUID)不利于查询

关于后一点,个人认为有多个因素:

其中一个(也许不是重要的)因素: 上面看到的压缩算法,都是对Posting list里的大量ID进行压缩的,那如果ID是顺序的,或者是有公共前缀等具有一定规律性的ID,压缩比会比较高;

另外一个因素: 可能是影响查询性能的,应该是后通过Posting list里的ID到磁盘中查找Document信息的那步,因为Elasticsearch是分Segment存储的,根据ID这个大范围的Term定位到Segment的效率直接影响了后查询的性能,如果ID是有规律的,可以快速跳过不包含该ID的Segment,从而减少不必要的磁盘读次数,




课程大纲:

第1节结构化搜索_IT技术论坛案例背景介绍 9分钟

第2节结构化搜索_在案例中实战使用term filter来搜索数据 20分钟

第3节结构化搜索_filter执行原理深度剖析(bitset机制与caching机制) 18分钟

第4节结构化搜索_在案例中实战基于bool组合多个filter条件来搜索数据 12分钟

第5节结构化搜索_在案例中实战使用terms搜索多个值以及多值搜索结果优化 7分钟

第6节结构化搜索_在案例中实战基于range filter来进行范围过滤 5分钟

第7节深度探秘搜索技术_在案例中体验如何手动控制全文检索结果的精准度 19分钟

第8节深度探秘搜索技术_基于term+bool实现的multiword搜索底层原理剖析 4分钟

第9节深度探秘搜索技术_基于boost的细粒度搜索条件权重控制 7分钟

第10节深度探秘搜索技术_多shard场景下relevance score不准确问题大揭秘 12分钟

第11节深度探秘搜索技术_案例实战基于dis_max实现best fields策略进行多字段搜索17分钟

第12节深度探秘搜索技术_案例实战基于tie_breaker参数优化dis_max搜索效果10分钟

第13节深度探秘搜索技术_案例实战基于multi_match语法实现dis_max+tie_breaker6分钟

第14节深度探秘搜索技术_基于multi_match+most fiels策略进行multi-field搜索19分钟

第15节深度探秘搜索技术_使用most_fields策略进行cross-fields search弊端大揭秘12分钟

第16节深度探秘搜索技术_使用copy_to定制组合field解决cross-fields搜索弊端14分钟

第17节深度探秘搜索技术_使用原生cross-fiels技术解决搜索弊端12分钟

第18节深度探秘搜索技术_在案例实战中掌握phrase matching搜索技术23分钟

第19节深度探秘搜索技术_基于slop参数实现近似匹配以及原理剖析和相关实验17分钟

第20节深度探秘搜索技术_混合使用match和近似匹配实现召回率与精准度的平衡9分钟

第21节深度探秘搜索技术_使用rescoring机制优化近似匹配搜索的性能10分钟

第22节深度探秘搜索技术_实战前缀搜索、通配符搜索、正则搜索等技术19分钟

第23节深度探秘搜索技术_实战match_phrase_prefix实现search-time搜索推荐10分钟

第24节深度探秘搜索技术_实战通过ngram分词机制实现index-time搜索推荐16分钟

第25节深度探秘搜索技术_深入揭秘TF&IDF算法以及向量空间模型算法18分钟

第26节深度探秘搜索技术_深入揭秘lucene的相关度分数算法15分钟

第27节深度探秘搜索技术_实战掌握四种常见的相关度分数优化方法15分钟

第28节深度探秘搜索技术_实战用function_score自定义相关度分数算法7分钟

第29节深度探秘搜索技术_实战掌握误拼写时的fuzzy模糊搜索技术8分钟

第30节彻底掌握IK中文分词_上机动手实战IK中文分词器的安装和使用14分钟

第31节彻底掌握IK中文分词_IK分词器配置文件讲解以及自定义词库实战15分钟

第32节彻底掌握IK中文分词_修改IK分词器源码来基于mysql热更新词库20分钟

第33节深入聚合数据分析_bucket与metric两个核心概念的讲解7分钟

第34节深入聚合数据分析_家电卖场案例以及统计哪种颜色电视销量高8分钟

第35节深入聚合数据分析_实战bucket+metric:统计每种颜色电视平均价格7分钟

第36节深入聚合数据分析_bucket嵌套实现颜色+品牌的多层下钻分析7分钟

第37节深入聚合数据分析_掌握更多metrics:统计每种颜色电视大小价格5分钟

第38节深入聚合数据分析_实战hitogram按价格区间统计电视销量和销售额5分钟

第39节深入聚合数据分析_实战date hitogram之统计每月电视销量6分钟

第40节深入聚合数据分析_下钻分析之统计每季度每个品牌的销售额6分钟

第41节深入聚合数据分析_搜索+聚合:统计指定品牌下每个颜色的销量4分钟

第42节深入聚合数据分析_global bucket:单个品牌与所有品牌销量对比6分钟

第43节深入聚合数据分析_过滤+聚合:统计价格大于1200的电视平均价格4分钟

第44节深入聚合数据分析_bucket filter:统计牌品近一个月的平均价格7分钟

第45节深入聚合数据分析_排序:按每种颜色的平均销售额降序排序4分钟

第46节深入聚合数据分析_颜色+品牌下钻分析时按深层metric进行排序4分钟

第47节深入聚合数据分析_易并行聚合算法,三角选择原则,近似聚合算法12分钟

第48节深入聚合数据分析_cardinality去重算法以及每月销售品牌数量统计3分钟

第49节深入聚合数据分析_cardinality算法之优化内存开销以及HLL算法7分钟

第50节深入聚合数据分析_percentiles百分比算法以及网站访问时延统计11分钟

第51节深入聚合数据分析_percentiles rank以及网站访问时延SLA统计7分钟

第52节深入聚合数据分析_基于doc value正排索引的聚合内部原理17分钟

第53节深入聚合数据分析_doc value机制内核级原理深入探秘7分钟

第54节深入聚合数据分析_string field聚合实验以及fielddata原理初探15分钟

第55节深入聚合数据分析_fielddata内存控制以及circuit breaker断路器8分钟

第56节深入聚合数据分析_fielddata filter的细粒度内存加载控制4分钟

第57节深入聚合数据分析_fielddata预加载机制以及序号标记预加载6分钟

第58节深入聚合数据分析_海量bucket优化机制:从深度优先到广度优先9分钟

第59节数据建模实战_关系型与document类型数据模型对比9分钟

第60节数据建模实战_通过应用层join实现用户与博客的关联12分钟

第61节数据建模实战_通过数据冗余实现用户与博客的关联7分钟

第62节数据建模实战_对每个用户发表的博客进行分组6分钟

第63节数据建模实战_对文件系统进行数据建模以及文件搜索实战10分钟

第64节数据建模实战_基于全局锁实现悲观锁并发控制00:12:19分钟

第65节数据建模实战_基于document锁实现悲观锁并发控制23分钟

第66节数据建模实战_基于共享锁和排他锁实现悲观锁并发控制18分钟

第67节数据建模实战_基于nested object实现博客与评论嵌套关系12分钟

第68节数据建模实战_对嵌套的博客评论数据进行聚合分析9分钟

第69节数据建模实战_研发中心管理案例以及父子关系数据建模11分钟

第70节数据建模实战_根据员工信息和研发中心互相搜索父子数据6分钟

第71节数据建模实战_对每个国家的员工兴趣爱好进行聚合统计4分钟

第72节数据建模实战_祖孙三层数据关系建模以及搜索实战7分钟

第73节elasticsearch高手进阶_基于term vector深入探查数据的情况30分钟

第74节elasticsearch高手进阶_深入剖析搜索结果的highlight高亮显示23分钟

第75节elasticsearch高手进阶_使用search template将搜索模板化24分钟

第76节elasticsearch高手进阶_基于completion suggest实现搜索提示12分钟

第77节elasticsearch高手进阶_使用动态映射模板定制自己的映射策略19分钟

第78节elasticsearch高手进阶_学习使用geo point地理位置数据类型12分钟

第79节elasticsearch高手进阶_酒店o2o搜索案例以及搜索指定区域内的酒店7分钟

第80节elasticsearch高手进阶_实战搜索距离当前位置一定范围内的酒店8分钟

第81节elasticsearch高手进阶_统计当前位置每个距离范围内有多少家酒店5分钟

第82节熟练掌握ES Java API_client集群自动探查以及汽车零售店案例背景9分钟

第83节熟练掌握ES Java API_基于upsert实现汽车新价格的调整17分钟

第84节熟练掌握ES Java API_基于mget实现多辆汽车的配置与价格对比6分钟

第85节熟练掌握ES Java API_基于bulk实现多4S店销售数据批量上传13分钟

第86节熟练掌握ES Java API_基于scroll实现月度销售数据批量下载12分钟

第87节熟练掌握ES Java API_基于search template实现按品牌分页查询模板7分钟

第88节熟练掌握ES Java API_对汽车品牌进行全文检索、精准查询和前缀搜索7分钟

第89节熟练掌握ES Java API_对汽车品牌进行多种条件的组合搜索7分钟

第90节熟练掌握ES Java API_基于地理位置对周围汽车4S店进行搜索9分钟

第91节熟练掌握ES Java API_如何自己尝试API以掌握所有搜索和聚合的语法14分钟

第92节快速入门篇以及高手进阶篇课程总结,以及后续阶段课程介绍15分钟

第93节生产集群部署之硬件配置、jvm以及集群规划建议00:45:36分钟

第94节生产集群部署之从零开始搭建一套4个节点的2核4G虚拟机集群00:44:24分钟

第95节生产集群部署之部署3个ES 5.5节点以及zen discovery集群发现机制00:49:57分钟

第96节生产集群部署之必须根据自己的集群设置的一些重要参数00:19:49分钟

第97节生产集群部署之针对生产集群的脑裂问题专门定制的重要参数00:18:42分钟

第98节生产集群部署之针对集群重启时的shard恢复耗时过长问题定制的重要参数00:17:04分钟

第99节生产集群部署之不能随意调节jvm和thread pool的原因00:10:16分钟

第100节生产集群部署之jvm和服务器内存分配的佳实践以及原理分析00:38:18分钟

第101节生产集群部署之重要的操作系统设置(swapping、virutal memory等)00:18:54分钟

第102节生产集群部署之production mode下启动时的bootstrap check00:13:50分钟

第103节生产集群部署之各个节点以daemon模式运行以及优雅关闭00:37:31分钟

第104节生产集群备份恢复之部署hadoop hdfs分布式文件存储系统00:21:12分钟

第105节生产集群备份恢复之基于snapshot+hdfs进行数据备份00:37:04分钟

第106节生产集群备份恢复之基于snapshot+hdfs+restore进行数据恢复00:13:08分钟

第107节生产集群版本升级之基于节点依次重启策略进行5.x的各个小版本之间的升级00:29:38分钟

第108节生产集群版本升级之基于集群整体重启策略进行2.x到5.x的大版本升级00:19:06分钟

第109节生产集群版本升级之基于索引重建策略进行1.x到5.x的跨多个大版本的升级00:17:48分钟

第110节elasticsearch生产集群中的索引管理(一)00:32:42分钟

第111节elasticsearch生产集群中的索引管理(二)00:19:08分钟

第112节elasticsearch生产集群中的索引管理(三)00:13:52分钟

第113节elasticsearch生产集群中的索引管理(四)00:12:00分钟

第114节elasticsearch生产集群中的索引管理(五)00:08:39分钟

第115节elasticsearch的底层模块深入解析之shard allocation00:25:23分钟

第116节elasticsearch的底层模块深入解析之gateway00:09:34分钟

第117节elasticsearch的底层模块深入解析之http、network和transport00:09:26分钟

第118节elasticsearch的底层模块深入解析之threadpool00:11:21分钟

第119节elasticsearch的底层模块深入解析之plugin00:04:01分钟

第120节elasticsearch的底层模块深入解析之node00:21:34分钟

第121节elasticsearch性能调优之慢查询日志00:08:50分钟

第122节elasticsearch性能调优之基本优化建议00:14:21分钟

第123节elasticsearch性能调优之索引写入性能优化00:12:24分钟

第124节elasticsearch性能调优之搜索性能优化00:15:51分钟

第125节elasticsearch性能调优之磁盘读写性能优化00:08:23分钟

第126节es生产集群监控之基于cat API进行监控00:10:25分钟

第127节es生产集群监控之基于cluster API进行监控00:04:55分钟

第128节补充案例-环境准备:虚拟机环境搭建00:11:40分钟

第129节补充案例-小型流量分析系统:logstash部署以及上手使用00:07:03分钟

第130节补充案例-小型流量分析系统:整体流程讲解00:03:49分钟

第131节补充案例-小型流量分析系统:安装mysql以及手动导入样例数据00:12:04分钟

第132节补充案例-小型流量分析系统:使用logstash将mysql数据导入elasticsearch00:21:48分钟

第133节补充案例-小型流量分析系统:安装和部署kibana00:05:58分钟

第134节补充案例-小型流量分析系统:基于kibana制作网站流量分析报表(一)00:08:48分钟

第135节补充案例-小型流量分析系统:基于kibana制作网站流量分析报表(二)本节为本套课程后一节课时00:15:39分钟


精彩文章来源微信公众号 java微技术

相关文章