[清晰][完整][完整书签目录][PDF] 深入理解ElasticSearch
简介 资深软件开发专家、架构师撰写,系统且深入阐释ElasticSearch涉及的工具、方法、原则和实践,深入剖析ElasticSearch应用过程中遇到的各个层面的问题,涉及分布式索引机制、系统监控及性能优化、用户体验改善、Java API应用,以及自定义插件开发等,能为工程师与架构师快速提高ElasticSearch水平提供有效指导 目录 前言 第1章Elasticsearch简介1 1.1ApacheLucene简介1 1.1.1熟悉Lucene2 1.1.2Lucene的总体架构2 1.1.3分析数据4 1.1.4Lucene查询语言5 1.2何为Elasticsearch8 1.2.1Elasticsearch的基本概念8 1.2.2Elasticsearch架构背后的关键概念10 1.2.3Elasticsearch的工作流程10 1.3在线书店示例14 1.4小结17 第2章查询DSL进阶18 2.1ApacheLucene默认评分公式解释18 2.1.1何时文档被匹配上19 2.1.2TF/IDF评分公式19 2.1.3Elasticsearch如何看评分21 2.1.4一个例子21 2.2查询 改写24 2.2.1前缀查询示例24 2.2.2回到ApacheLucene26 2.2.3查询改写的属性28 2.3查询模板30 2.3.1引入查询模板31 2.3.2Mustache模板引擎33 2.3.3把查询模板保存到文件35 2.4过滤器的使用及作用原理36 2.4.1过滤及查询相关性36 2.4.2过滤器的工作原理40 2.4.3性能考量41 2.4.4后置过滤和过滤查询42 2.4.5选择正确的过滤方式44 2.5选择正确的查询方式45 2.5.1查询方式分类45 2.5.2使用示例50 2.6小结65 第3章不只是文本搜索66 3.1查询二次评分66 3.1.1什么是查询二次评分67 3.1.2一个查询例子67 3.1.3二次评分查询的结构67 3.1.4二次评分参数70 3.1.5总结70 3.2多匹配控制71 3.3重要词项聚合78 3.3.1一个例子79 3.3.2选择重要词项81 3.3.3多值分析81 3.3.4额外的配置84 3.3.5使用限制89 3.4文档分组89 3.4.1top_hits聚合90 3.4.2一个例子90 3.5文档关系95 3.5.1对象类型95 3.5.2嵌套文档98 3.5.3parent—child关系99 3.5.4其他解决方案102 3.6Elasticsearch各版本中脚本的变化102 3.6.1脚本变迁102 3.6.2Groovy简单介绍103 3.6.3全文检索中的脚本108 3.6.4Lucene表达式115 3.7小结118 第4章改善用户搜索体验119 4.1改正用户拼写错误119 4.1.1测试数据120 4.1.2深入技术细节121 4.1.3suggester121 4.2改善查询相关性142 4.2.1数据142 4.2.2改善相关性的探索之旅145 4.3小结157 第5章分布式索引架构159 5.1选择合适的分片和副本数159 5.1.1分片和过度分配160 5.1.2一个过度分配的正面例子161 5.1.3多分片与多索引161 5.1.4副本161 5.2路由162 5.2.1分片和数据162 5.2.2测试路由功能162 5.2.3索引时使用路由166 5.2.4别名169 5.2.5多个路由值169 5.3调整默认分片的分配行为170 5.3.1部署意识171 5.3.2过滤173 5.3.3运行时更新分配策略174 5.3.4确定每个节点允许的总分片数175 5.3.5确定每个物理机器允许的总分片数175 5.4查询执行偏好179 5.5小结181 第6章底层索引控制182 6.1改变ApacheLucene的评分方式182 6.1.1可用的相似度模型183 6.1.2为每字段配置相似度模型183 6.1.3相似度模型配置184 6.1.4选择默认的相似度模型185 6.2选择适当的目录实现—store模块188 6.3准实时、提交、更新及事务日志191 6.3.1索引更新及更新提交192 6.3.2事务日志193 6.3.3准实时读取194 6.4控制索引合并195 6.4.1选择正确的合并策略196 6.4.2合并策略配置197 6.4.3调度199 6.5关于I/O调节200 6.5.1控制I/O节流200 6.5.2配置200 6.6理解Elasticsearch缓存202 6.6.1过滤器缓存203 6.6.2字段数据缓存204 6.6.3查询分片缓存212 6.6.4使用circuitbreaker213 6.6.5清除缓存214 6.7小结215 第7章管理Elasticsearch216 7.1发现和恢复模块216 7.1.1发现模块的配置217 7.1.2主节点218 7.1.3网关和恢复模块的配置223 7.1.4索引恢复API226 7.2使用人类友好的CatAPI229 7.2.1基础知识230 7.2.2使用CatAPI231 7.2.3一些例子232 7.3备份232 7.4联盟搜索236 7.4.1测试用的集群236 7.4.2建立部落节点237 7.4.3通过部落节点读取数据238 7.4.4通过部落节点写入数据239 7.4.5处理索引冲突240 7.4.6屏蔽写操作241 7.5小结242 第8章提高性能243 8.1使用docvalues来优化查询243 8.1.1字段缓存存在的问题244 8.1.2使用docvalues的例子245 8.2了解垃圾回收器247 8.2.1Java内存248 8.2.2解决垃圾回收问题249 8.2.3在类UNIX系统上避免内存交换254 8.3对查询做基准测试255 8.3.1为基准测试配置集群256 8.3.2进行基准测试256 8.3.3控制运行中的基准测试259 8.4热点线程261 8.4.1热点线程的使用说明261 8.4.2热点线程API的响应262 8.5扩展Elasticsearch263 8.5.1垂直扩展263 8.5.2水平扩展264 8.5.3在高负载的场景下使用Elasticsearch271 8.6小结283 第9章开发Elasticsearch插件284 9.1创建Maven项目284 9.2了解基本知识285 9.2.1MavenJava项目的结构285 9.2.2POM的理念285 9.2.3执行构建过程286 9.2.4引入Maven装配插件287 9.3创建自定义REST行为289 9.3.1设定289 9.3.2实现细节289 9.4创建自定义分析插件295 9.4.1实现细节295 9.4.2测试自定义分析插件302 9.5小结304
用户评论
东西不错,比较清晰
你这个叫完整书签?1、2/3/4/5/6
东西很好,刚开始学习,多谢分享!