【二手正版】 ElasticSearch 拉法乌·库奇 (Rafal Kuc)|马雷克·罗戈津斯基 (Marek Rogozinski) 电子工业出版社 9787121252006
本店图书 都是正版图书 可开电子发票 需要发票的联系客服!
¥
13.44
1.9折
¥
69
九品
库存3件
作者拉法乌·库奇 (Rafal Kuc)|马雷克·罗戈津斯基 (Marek Rogozinski)
出版社电子工业出版社
ISBN9787121252006
出版时间2015-01
装帧平装
开本16开
定价69元
货号978471877251547143
上书时间2024-12-25
商品详情
- 品相描述:九品
- 商品描述
-
前言
推荐序
Cool,这是国内第一本介绍ElasticSearch的书!
电子工业出版社邀请我来为这本书作序,非常荣幸也非常惭愧。本人最近2年掉“创业坑”里面不能自拔,每天忙碌于各种琐事,为ElasticSearch社区所做贡献实在不多。
在讨论组中,经常有人跟我抱怨:ElasticSearch的中文资料实在是太少了,官方的文档不完整。还有很多人说英文的文档看起来太费劲了。我曾经尝试将官方的guide翻译成中文,但无奈工作繁忙且精力有限,翻译了几个章节,然后就没有然后了。本书的出版,对于广大ElasticSearch爱好者来说绝对是一个喜讯,相信本书的出版对于ElasticSearch的进一步普及也会带来很好的帮助。
这本书非常适合初学者阅读和参考。作者先从介绍常用API的使用开始,由浅入深,随着后面的不断深入,不仅详细介绍了ElasticSearch的各种搜索特性和查询语法(ElasticSearch真的很强大啊),而且对性能优化和集群管理也做了很多细致的介绍。书中不仅介绍了在使用ElasticSearch过程中可能会遇到的各种问题及相对应的解决办法,更难能可贵的是还给出了出现这些问题的原因及其背后的原理。相信就算是对搜索及ElasticSearch有过一定了解的同学也能在这本书里面学到很多东西。
本人接触ElasticSearch不多不少也有4个年头了,亲眼见证了这个产品的飞速发展。ElasticSearch已经从最初的分布式搜索引擎发展成为如今大数据时代下杰出的实时数据分析的解决方案。ElasticSearch旗下的产品线也在不断地丰富、完善,越来越多的公司和个人都开始考虑使用ElasticSearch作为其用于搭建企业搜索和数据分析工具的首选。可以说ElasticSearch的前景一片光明。而我本人对于ElasticSearch的作者ShayBanon也是非常敬佩的。我接触ElasticSearch比较早,那个时候ElasticSearch还刚release没多久,遇到使用上的各种问题都能在IRC聊天室或者邮件组里面很快得到Shay的飞速响应和耐心解答。另外,ElasticSearch的很多设计理念现在看来都是很先进的并且还在一直不断地进步,真心很“赞”。
这本书针对ElasticSearch的版本是0.20.2。无奈ElasticSearch版本更新太快,尤其是1.0以后,ElasticSearch推出了很多新的功能,如aggregation、snapshot等,但也有一些旧功能的废除,甚至还有一些API的变动。这些在本书中可能都没有涉及;不过不要紧,版本变化不可避免,书也很难做到同步,有问题多去社区交流就好了。:)
Medcl,ElasticSearch中文社区发起人,目前在医树网负责后端及运维工作
译者序
大数据时代已经到来,数据规模正在以前所未有的速度迅速增长。Lucene是许多互联网公司的标准搜索引擎,但无法在一个合理的时间内存储和检索如此海量的数据,因而不适合大数据和云计算环境。计算机体系结构在数据存储和搜索方面要求具备强大的水平扩展性,而ElasticSearch致力于改变这一现状。ElasticSearch因其自身快速、灵活和可扩展的特点在大数据时代得到了迅速的发展。开发的软件只要换上新一代的搜索引擎搜索数据,即可获得性能上的突飞猛进。ElasticSearch提供了非常优秀的可扩展框架,以支持大数据程序设计的需求。
ElasticSearch是一个基于Lucene内核构建的,具有开源、分布式、RESTful等特点的搜索引擎,能够实时搜索,稳定并且可靠。本书全面丰富地介绍了ElasticSearch搜索引擎。无论你是需要全文搜索、结构化数据的实时统计,还是两者的结合,本书都会帮助你了解其中最基本的概念,从最基本的操作开始学习。然后,逐渐开始探索更加复杂的高级功能,如过滤、统计、高亮、反查等。
本书特色鲜明,作者在介绍ElasticSearch时,仿佛是在跟朋友谈论家常,娓娓道来,基本概念的讲解细致、深入浅出。各种功能和命令的介绍,都配以实践操作和详细的代码,把ElasticSearch的魅力展现得淋漓尽致。
本书的翻译工作经过精心的组织,整个过程得到大批专业人士的帮助。在交付出版社之前,译者团队经过全书的讨论、初译、初核、再译、再核,审校等6个环节。其中,柳厅文和时金桥分别负责第1~2章和第3章的翻译,对保证本书的翻译质量起到了重要作用;张浩亮翻译了第4~5章;徐菲翻译了第6~8章。特别感谢郭莉主任,她应邀审校了全部译文,提出了很多中肯的改进意见。本书在交到出版社之后,又得到电子工业出版社的大力帮助,他们的工作专业而细致,让人敬佩。另外,还要感谢西安交通大学的李烨同学、电子科技大学的李全刚同学、中国科学院信息工程研究所的亚静同学等,他们参与了本书部分内容的翻译、整理,以及本书代码的实验验证。如果没有这么多人的辛勤奉献,这本中译本很难如期呈现。
由于本书涉及面广,很多术语较新,且目前尚无固定译法,因此翻译难度很大。有时,为一个术语选择一个恰当的中文译法,译者经常反复推敲、讨论。但由于译者水平有限,译文中难免存在一些问题,真诚地希望读者朋友们将自己的一些意见或建议发往elasticsearch-server@163.com。
关于作者
RafałKuć是一位天生的团队领导者和软件开发者。他现在在SematextGroup公司做顾问和软件工程师,专注于开源技术,如ApacheLucene与Solr、ElasticSearch及Hadoop软件堆栈。从银行软件到电子商务产品,他在不同的软件公司有超过11年的从业经历。他主要专注于Java,但是对任何有助于简单、快速达到目标的工具或程序设计语言都保持开放态度。Rafał还是solr.pl网站的创始人之一,在这里他试图和大家分享知识,帮助大家解决有关Solr和Lucene的问题。他还在世界各地的各种会议上做讲者,例如LuceneEurocon、BerlinBuzzwords及ApacheCon。
Rafał从2002年起开启了他的Lucene之旅,但那时他并非对Lucene一见钟情。当他在2003年年底回到Lucene时,他改变了关于此框架的想法,看到了其在搜索技术方面的潜力。后来Solr出现了,事情就是这样的。在2010年中,他开始使用ElasticSearch。如今,Lucene、Solr、ElasticSearch和信息检索是他的主要兴趣所在。
Rafał还是ApacheSolr3.1Cookbook一书的作者,其升级版本ApacheSolr4Cookbook由PacktPublishing公司出版。
致谢
来自RafałKuć的致谢
你拿到的这本书对我来说是一个新的体验,尽管这并不是我写过的第一本书。当我们开始写作时,认为自己能够把所有我们想要的功能都写出来,但是在那个时候我们没有估计到ElasticSearch有多大、写作需要多少时间。最后,我们不得不对主题进行挑选,希望我们的选择是明智的,希望你能够发现本书对你的工作有所帮助。当我在描述一个功能时,我试图像我希望自己能够读到的那样把它写出来,所以我希望你能感到这些描述是有用的,是令人感兴趣的。
尽管把时钟拨回,我还是会这样做;但是写作本书的那段时间对我的家庭来说并不简单,尤其是这并不是我在那个时候唯一写作的书。在那个时候ApacheSolr4Cookbook一书也在更新。对此受苦最深的是我的夫人Agnes以及我们的两个可爱的孩子,我们的儿子Philip和我们的女儿Susanna。如果没有他们的耐心和理解,我是不可能写作此书的。同时,我也要感谢我的父母和Agnes的父母,感谢他们的支持和帮助。
我希望对所有参与到创建、发展以及维护ElasticSearch和Lucene项目的人表示感谢,感谢他们的工作和激情。没有他们,本书不可能写出来。
最后,我要给所有本书的编审人员一个大大的感谢。至少从我的角度来看,他们有益的建议和深刻见解使得本书变得更好。
再一次,感谢你们!
MarekRogoziński是一位拥有10年以上经验的软件架构师与顾问。他专攻基于开源项目的解决方案,如Solr和ElasticSearch。
他也是solr.pl网站的共同创始人之一,并在网站上发表有关Solr和Lucene库的信息和教程。
目前,他拥有Smartupz公司的CTO职位,这家公司是Discourse社交协作软件的生产商。
来自MarekRogoziński的致谢
这本书的写作是很辛苦的工作,但也是一个尝试新事物的好机会。看到随着时间的增长,越来越多的内容被创作出来,我也感受到ElasticSearch的内容是多么丰富,在有限的内容中描述出它的功能是多么困难。我希望在本书中选中的主题是最重要、最令人感兴趣的。
最大的感谢是给所有参与到Lucene和ElasticSearch开发的人们的。这真是一项伟大的工作。
我还想感谢此书的工作团队。我们顺利、迅速地完成了所有的筹备工作,这给我留下了深刻的印象。对于本书的编审,我要给他们特别的感谢,他们给我们提出了一长串的意见和建议。
最后也是最重要的,感谢我所有的朋友,那些劝我写书的朋友和那些本作品对他们来说是大大惊喜的朋友。
关于编审人员
RavindraBharathi在软件行业工作已经超过10年,涉及不同的领域,如教育、数字媒体营销/广告、商业搜索及能源管理系统。他对搜索类应用有浓厚的兴趣,包括数据可视化、Mashup及仪表盘。他的博客地址是http://ravindrabharathi.blogspot.com。
MatthewLeeHinman目前在为高可用系统及基于云的系统开发分布式归档系统,开发语言包括Clojure和Java。他乐于为开源软件做出贡献,喜欢花时间进行户外徒步。
MarceloOchoa在布宜诺斯艾利斯省中央国立大学(UniversidadNacionaldelCentrodelaProvinciadeBuenosAires)理学院(FacultaddeCienciasExactas)的系统实验室工作。他是Scotas.com(一家专注于使用ApacheSolr和Oracle提供近实时搜索解决方案的公司)的CTO。他同时承担大学的教学工作及与Oracle和大数据技术相关的外部项目。他曾经参与了多个Oracle相关项目,如Oracle手册和多媒体CBT的翻译。他拥有数据库、网络、Web和Java技术背景。在XML领域中,他以作为很多个项目的开发者而著称,包括ApacheCocoon项目的DBGenerator、开源项目DBPrism和DBPrismCMS、使用OracleJVMDirectory实现的Lucene-Oracle集成,以及在Restlet.org项目中的OracleXDBRestletAdapter(一种在数据库驻留JVM中实现本地RESTWeb服务的替代方法)。
从2006年起,他成为OracleACE项目(OracleACEProgram)的一员。“OracleACE”以其作为Oracle社区中的技术狂热者与倡导者而著称,其候选人由OracleTechnologyandApplications委员会中的ACE专家们提名。
他是OracleDatabaseProgrammingusingJavaandWebServices(KuassiMensah,DigitalPress)一书中第17章的作者,也是ProfessionalXMLDatabases(KevinWilliams,WroxPress)一书中第21章的作者。
前言
欢迎阅读本书。在读本书时,你将被一路带入一个奇妙的世界—有关ElasticSearch企业搜索服务器提供的全文搜索服务的世界。我们将从对ElasticSearch的总体介绍开始,具体介绍覆盖了启动与运行ElasticSearch及如何使用配置文件和RESTAPI对其进行配置等内容。你还将学到如何创建索引结构并提交给ElasticSearch、如何为字段配置不同的分析器,以及如何使用内置数据类型。
在本书中还将讨论查询语言,即所谓的QueryDSL,它允许用户创建复杂的查询并对返回结果进行过滤。除了上面提到的内容,你还将看到如何使用统计功能来计算查询返回结果的聚集数据。我们还将实现自动补全功能,学会使用ElasticSearch的空间数据处理能力及预期搜索功能。
最后,本书还将向你展示ElasticSearch管理API的能力,如控制分片部署位置、操纵集群等功能。此外,你还将学到如何处理使用ElasticSearch过程中可能遇到的常见问题。
本书包含的内容
第1章覆盖了ElasticSearch的安装和配置、RESTAPI的使用方法、映射配置、路由和索引别名等内容。
第2章讨论了QueryDSL——基本查询与复合查询、过滤、结果排序及使用脚本等内容。
第3章解释了如何索引非平面数据、如何处理高亮和自动补全,以及如何利用_ttl、_source等内部信息扩展索引结构。
第4章覆盖了如何影响结果的得分、如何使用同义词功能,以及处理多语言数据。此外,本章还介绍了如何使用位置感知的查询及如何检查文档被检索到的原因。
第5章展示了如何索引树状结构、使用嵌套对象、处理父子关系、在线更新索引结构、从外部系统获取数据及利用批量处理加快索引过程等内容。
第6章主要介绍统计功能、相似查询功能及预期搜索功能。
第7章主要介绍集群管理API及集群监控。在本章中,你还将找到有关外部插件安装的信息。
第8章将指引你有效获取大规模结果集、控制集群再平衡、验证查询及使用预热查询。
你需要为本书做的准备
本书基于ElasticSearch服务器0.20.0写作而成,书中所有的示例和函数都应当在上面生效。此外,你还需要一个可以发送HTTP请求的命令行工具,如curl,它在绝大部分的操作系统中都有。请注意,本书中所有的示例都使用了提到的curl工具。如果你想要用其他工具,请注意把查询格式替换为你选择工具能够理解的样式。
此外,一些章节还需要额外的工具,例如ElasticSearch插件或者MongoDBNoSQL数据库(不过在需要时,书中会明确提到)。
本书面向的读者
如果你是全文搜索和ElasticSearch的初学者,本书是非常适合你阅读的。它将指引你学习ElasticSearch的基础知识,你还将学到一些高级功能。
如果你知道ElasticSearch并且已经使用过它,你将发现本书很吸引人,因为它为所有功能提供了一个很好的综述,并且还带有示例和描述。不过,你可能会遇到一些已经知道的内容。
如果你知道ApacheSolr搜索引擎,这本书还可以用来比较ApacheSolr和ElasticSearch的部分功能。这将帮助你判定哪个工具更加适合你的应用案例。
如果你已经知道ElasticSearch的所有细节,并且知道每一个配置参数都是如何工作的,那么这本书绝对不是你想要的!
部分约定
在本书中,你将找到若干种形式的文本,用来区分不同类型的信息。这里是这些形式的一些例子及其含义解释。
文本中的代码关键词如下所示:“indices对象包含关于library和map索引的信息。primaries对象包含当前节点之上的所有主分片的信息。”
代码块显示如下:
"store":{
"size":"7.6kb",
"size_in_bytes":7867,
"throttle_time":"0s",
"throttle_time_in_millis":0
}
当我们期望把你的注意力吸引到代码块的某一部分时,相关的行或条目会被加粗显示。
publicclassHashCodeSortScriptextendsAbstractSearchScript{
privateStringfield="name";
publicHashCodeSortScript(Map<String,Object>params)
命令行输入或输出写作如下形式:
curl-XPOST'localhost:9200/_cluster/reroute'-d'{
"commands":[
{"move":{"index":"shop","shard":1,"from_node":"es_node_one","to_node":"es_node_two"}},
{"cancel":{"index":"shop","shard":0,"node":"es_node_one"}}
新的词条与重要词语会被加粗显示。
警告或重要的注释文字将以加灰底的形式显示。
提示和技巧看上去是这个样子的。
导语摘要
ElasticSearch是一个基于ApacheLucene构建的开源搜索服务器。它提供了一个可扩展的搜索解决方案,内置支持近实时搜索和多租户。
库奇、罗戈津斯基编著的《ElasticSearch:可扩展的开源弹性搜索解决方案》将教你如何构建一个快速、灵活、可扩展的搜索解决方案,通过建立自定义集群进入ElasticSearch的世界。通过学习数据索引和分析,你将掌握ElasticSearch的强大功能,包括如何搜索数据、如何扩大搜索范围,以及如何进行集群管理。
从建立自己的ElasticSearch集群开始,然后进行搜索并扩展搜索参数,你就可以创建一个完全自定义的搜索解决方案。在此基础上,你将进一步地学习ElasticSearch的查询API,以及如何使用强大的过滤和统计功能。在ElasticSearch旅程最后总结的一些章节,帮助读者控制和调整集群,学习分片分配、网关模式配置等知识。
本书是为希望利用EIasticSearch创建一个快速、灵活的搜索解决方案的开发者而撰写的。如果你正试图学习ElasticSearch或者希望变得更加精通,本书也同样适合。开始学习本书时你不需要知道关于ElasticSearch的任何知识,但知道一些数据库和查询的基本知识是必需的。
作者简介
柳厅文,中科院的博士研究生,英语较好,有着丰富的翻译经验。中科院的博士研究生,英语较好,有着丰富的翻译经验。
目录
第1章 ElasticSearch集群入门
1.1 什么是ElasticSearch
1.1.1 索引
1.1.2 文档
1.1.3 文档类型
1.1.4 节点和集群
1.1.5 分片
1.1.6 副本
1.2 安装和配置ElasticSearch集群
1.3 目录结构
1.4 配置ElasticSearch
1.5 运行ElasticSearch
1.6 关闭ElasticSearch
1.7 作为系统服务运行ElasticSearch
1.8 基于REST API的数据操作
1.8.1 什么是REST
1.8.2 在ElasticSearch中存储数据
1.8.3 创建新文档
1.8.4 检索文档
1.8.5 更新文档
1.8.6 删除文档
1.9 手工创建索引与配置映射
1.9.1 索引
1.9.2 文档类型
1.9.3 索引操作
1.9.4 模式映射
1.10 动态映射和模板
1.10.1 类型确定机制
1.10.2 动态映射
1.10.3 模板
1.11 路由选择的重要性
1.11.1 如何进行索引
1.11.2 搜索是如何工作的
1.11.3 路由选择
1.11.4 routing参数
1.11.5 _routing字段
1.12 索引别名及其用途
1.12.1 别名的定义
1.12.2 创建别名
1.12.3 修改别名
1.12.4 两种命令的组合
1.12.5 获得所有的别名
1.12.6 过滤别名
1.12.7 别名和路由选择
1.13 本章小结
第2章 搜索数据
2.1 查询和索引的过程
2.2 本章案例使用的映射
2.3 查询ElasticSearch
2.3.1 简单查询
2.3.2 分页和结果规模
2.3.3 返回版本号
2.3.4 限制结果分数
2.3.5 指定返回字段
2.3.6 使用script_fields
2.3.7 选择合适的搜索类型(高级选项)
2.3.8 指定搜索执行的位置(高级选项)
2.4 基本查询
2.4.1 term查询
2.4.2 terms查询
2.4.3 match查询
2.4.4 multi_match查询
2.4.5 query_string查询
2.4.6 field查询
2.4.7 ids查询
2.4.8 prefix查询
2.4.9 fuzzy_like_this查询
2.4.10 fuzzy_like_this_field查询
2.4.11 fuzzy查询
2.4.12 match_all查询
2.4.13 wildcard查询
2.4.14 more_like_this查询
2.4.15 more_like_this_field查询
2.4.16 range查询
2.4.17 查询重写
2.5 过滤查询结果
2.5.1 使用过滤器
2.5.2 range过滤器
2.5.3 exists过滤器
2.5.4 missing过滤器
2.5.5 script过滤器
2.5.6 type过滤器
2.5.7 limit过滤器
2.5.8 ids过滤器
2.5.9 其他功能
2.5.10 bool、and、or和not过滤器
2.5.11 过滤器的命名
2.5.12 过滤器的缓存
2.6 复合查询
2.6.1 bool查询
2.6.2 boosting查询
2.6.3 constant_score
— 没有更多了 —
以下为对购买帮助不大的评价