多种网盘链接检测插件 购买前,请先检测网盘链接是否有效
《深入理解Elasticsearch》_1
《深入理解Elasticsearch》_2
《深入理解Elasticsearch》_3
内容简介:
云计算与虚拟化技术丛书
Mastering Elasticsearch
深入理解
Elasticsearch
拉尔?酷奇( Rafal Ku
MA雷克·罗戈任斯基( Marek Rogozins
张世武余洪森商旦译
图书在版编目(CIP)数据
深入理解 Elasticsearch/(美)酷奇(Kuc,R.),(美)罗戈任斯基( Rogozinski,M.)著
张世武,余洪淼,商且译,一北京:机械工业出版社,2016.1
计算与虚拟化技术丛书
ISBN978-7-111-52416-8
.深…11①D酷…②罗…③张…④余…⑤商
互联网络一情报检索
IV.①G354.4②TP391
中guo版本图书馆CIP数据核字(2015)第309541号
本书版权登记号:图字:01-2014-2032
Rafal Kue and Marek Rogozinski: Mastering
All rights reserved
Chinese simplified language edition pub
y China Machine Press
Copyright C 2016 by China Machine Press
本书中文简体字版由Pac
复制武抄水书内容
深入理解 Elasticsearch
出版发行:机械工业出版社《北泉市西区百万庄大断22号部政:100
责任编辑:秦健
责任校对:董纪丽
印刷:北京文曰图彩色印有限责任公司
开本:186mmx240mm1/16
书号:ISBN978-
定价:69.00元
如有缺页、倒页、脱页,由本社发行调换
投稿热线010)88379604
683262948837964968995259读者信箱:hzitahzbook.com
版权所有,侵权必究
mvshates's /ve?者序
随着互联网时代的来临,人类面临着前所未有的信息过载问题。为了方便人们从海量
数据中快速精准地检索感兴趣的信息,Web搜索引擎应运而生。在互联网发展的早期,数
据量比较小,单机索引就能支撑一个完整的应用。此时 Apache Lucene凭借其精巧的代码设
优异的性能、丰富的查询接口,以及众多的衍生搜索产品(如 Apache Solr、 Nutch等)
在开源搜索领域大放异彩。随着互联网的发展,数据量快速膨胀,此时对搜索引擎提出了
分布式、准实时、高容错、可扩展、易于交互等诸多要求。基于 Lucene的简单二次开发已
经满足不了ri常的搜索需求, Elasticsearch的诞生则很好地满足了上述大数据时代的搜索产
品需求
Elasticsearch是一款基于 Apache Lucene的开源搜索引擎产品,最早发布于2010年
之后 Elasticsearch的开发团队成了专门的商业公司,持续进行开发并提供服务和技术支持。
Elasticsearch具有开源、分布式、准实时、 RESTFUL、便于二次开发等特点,代码实现精巧
系统稳定可靠,已经被guo内外众多知名组织和公司广泛采用。
本书内容丰富,不仅深入介绍了 Apache Lucene的评分机制、查询DSL、底层索引控
制,而且介绍了 Elasticsearch的分布式索引机制、系统监控及性能优化、用户体验的改善
Java API的使用,以及自定义插件的开发。本书文笔优雅,辅以大量翔实的实例,能帮助
读者快速提高 Elasticsearch水平。需要提醒读者的是,本书的目标读者是 Elasticsearch的
中高级用户,如果读者对 Elasticsearch的基础概念诸如 Mapping、 Types等缺乏了解的话
可先阅读作者的另外一本针对初学者的书籍《 Elasticsearch Server》。
本书的译文经过精心组织,结合了译者的 Elasticsearch使用经验,并参考了IBM、微
软、百度、腾 讯等多位业界专业人土的意见。其中,张世武负责第1~3章的翻译及全书
的审校,余洪森负责第4~5章的翻译,商且负责第6~9章的翻译。在本书交稿之前
翻译团队经过多次讨论、审校,力求翻译准确、优雅。由于本书涉及很多新概念,业界尚
无统一术语,另外译者水平有限,难免会出现一些翻译问题。欢迎广大读者朋友及业内同
行批评指正。
前言7
欢迎来到 Elasticsearch的世界。通过阅读本书,我们将带你接触与 Elasticsearch紧密
相关的各种话题。本书会从介绍 Apache Lucene及 Elasticsearch的基本概念开始。即使读
者熟悉这些知识,简略的介绍也是很有必要的,掌握背景知识对于全面理解集群构建、索
引文档、搜索这些操作背后到底发生了什么至关重要
之后,读者将学习 Lucene的评分过程是如何工作的,如何影响评分,以及如何让
Elasticsearch选择不同的评分算法。本书也将介绍什么是查询重写以及进行查询重写的原
。除此之外,本书还将介绍如何修改查询来影响 Elasticsearch的缓存功
限度地使用缓存
接着你将学习索引控制的相关知识:如何通过设置不同的倒排表格式( posting format)
来改变索引字段的写入模式;索引的段合并机制和段合并的重要性,以及如何调整段合并
来适应应用场景;深人探讨索引分片( shard)的分配机制、路由机制,以及当数据量、查
询量ri渐增长时的应对策略
当然本书也不会遗漏垃圾收集的相关内容,包括垃圾收集的工作原理、触发时间以及
如何调整垃圾收集的行为。此外,本书也将涉及 Elasticsearch状态诊断的介绍,例如,描
述系统段合并状况, Elasticsearch在高级API背后是如何工作以及如何限制1O操作的。然
而,本书并不仅限于讨论 Elasticsearch的底层机制,同时也涵盖了如何改进用户搜索体验
例如处理拼写检查,高效地输入自动提示以及如何改进查询等内容。
除了前面介绍的那些,本书还将指导读者熟悉 Elasticsearch的 Java API,并演示它的
使用方法,其中不仅包含CRUD(增删查改)等基本功能,同时也包含集群、索引的维护与
操作等高级功能。最后,读者将通过开发一个用于数据索引的自定义iver插件,以及一个
在检索期和索引期用于数据分析的自定义分析插件来深入了解 Elasticsearch的扩展机制
本书主要内容
第1章介绍 Apache Lucene I的工作方式,以及 Elasticsearch的基本概念,并演示 Elastic
Search的内部工作机制。
第2章描述 Lucene评分过程是如何工作的,为什么要进行查询重写,以及查询二次评
分( rescore)是如何工作的。除此之外,还将介绍 Elasticsearch的批处理API,以及如何使
用过滤器( filter)来优化查询。
第3章描述如何修改 Lucene评分,并使用不同的倒排索引格式来改变索引字段的结
构。此外还会介绍 Elasticsearch的准实时搜索和索引,事务ri志的使用,理解索引的段合
并以及如何调整段合并来适应应用场景
第4章介绍以下技术:如何选择恰当的索引分片及复制( replicas)数量,路由是如何
工作的,索引分片机制是如何工作的以及如何影响分片行为。同时还介绍 Elasticsearch如
何进行系统初始配置,以及当数据量和查询量急剧增长时如何调整系统配置。
第5章介绍如何为具体应用选择正确的目录( directory)实现,什么是发现
( Discovery)、网关( Gateway)、恢复( Recovery)模块,如何配置这些模块,以及有哪些
令人困扰的疑难点。最后介绍如何通过 Elasticsearch来查看索引段信息,以及如何进行
Elasticsearch缓存机制的调优。
第6章介绍JM垃圾收集的工作原理和重要意义,以及如何对它进行调优。同时还介
绍如何控制 Elasticsearch的IO操作数量,什么是预热器( warmer)以及如何使用它,最后
介绍如何诊断 Elasticsearch中的问题
第7章介绍查询建议( suggester),它能帮助修正查询中的拼写错误以及构建高效的自
动完成( autocomplete)机制。除此之外,将通过实际的案例展示如何使用不同查询类型和
Elasticsearch的其他功能来提高查询相关性
第8章覆盖 Elasticsearch的 Java Apl,不仅包括一些基本API,诸如连接到 Elasticsearch
集群、单条索引或批量索引、检索文档等,而且涵盖 Elasticsearch暴露的一些用于控制集
群的API
第9章通过演示如何开发你自己的河流( river)和语言处理( language)插件来介绍
Elasticsearch的插件开发
阅读本书的必备资源
本书基于 Elasticsearch0.90.x版本,所有范例代码均能在该版本下正常运行。除此之
外,读者需要一个能发送HTTP请求的命令行工具,如curl,该工具在绝大多数操作系统
上是可用的。请记住,本书的所有范例都使用了curl,如果读者想使用其他工具,请注意
检查请求的格式从而保证所选择的工具能正确解析它
除此之外,为了运行第8章和第9章的范例,要求已安装JDK,并且需要一个编辑器
来开发相关代码(或者类似 Eclipse的 Java IDE)。书中这两章都使用 Apache Maven进行代
码的管理与构建。
|
|