深入理解Elasticsearch(原书第2版)

深入理解Elasticsearch(原书第2版) pdf epub mobi txt 电子书 下载 2025

[美] 拉斐尔·酷奇 著,张世武 译
图书标签:
  • Elasticsearch
  • 搜索
  • 全文检索
  • Lucene
  • 分布式
  • 数据分析
  • 开发
  • 技术
  • 大数据
  • 实战
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111568254
版次:1
商品编码:12203786
品牌:机工出版
包装:平装
丛书名: 云计算与虚拟化技术丛书
开本:16开
出版时间:2017-05-01
用纸:胶版纸
页数:304

具体描述

内容简介

本书涵盖了Elasticsearch的许多中高级功能,并介绍了缓存、ApacheLucene库以及监控等模块的内部运作机制。其中,还涉及一些实用案例,比如配置Elasticsearch参数、使用监控API等。

目录

译者序
作者简介
评审者简介
前言
第1章 Elasticsearch简介1
1.1 Apache Lucene简介1
1.1.1 熟悉Lucene2
1.1.2 Lucene的总体架构2
1.1.3 分析数据4
1.1.4 Lucene查询语言5
1.2 何为Elasticsearch8
1.2.1 Elasticsearch的基本概念8
1.2.2 Elasticsearch架构背后的关键概念10
1.2.3 Elasticsearch的工作流程10
1.3 在线书店示例14
1.4 小结17
第2章 查询DSL进阶18
2.1 Apache Lucene默认评分公式解释18
2.1.1 何时文档被匹配上19
2.1.2 TF/IDF评分公式19
2.1.3 Elasticsearch如何看评分21
2.1.4 一个例子21
2.2 查询改写24
2.2.1 前缀查询示例24
2.2.2 回到Apache Lucene26
2.2.3 查询改写的属性28
2.3 查询模板30
2.3.1 引入查询模板31
2.3.2 Mustache模板引擎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.1 top_hits聚合90
3.4.2 一个例子90
3.5 文档关系95
3.5.1 对象类型95
3.5.2 嵌套文档98
3.5.3 parent-child关系99
3.5.4 其他解决方案102
3.6 Elasticsearch各版本中脚本的变化102
3.6.1 脚本变迁102
3.6.2 Groovy简单介绍103
3.6.3 全文检索中的脚本108
3.6.4 Lucene表达式115
3.7 小结118
第4章 改善用户搜索体验119
4.1 改正用户拼写错误119
4.1.1 测试数据120
4.1.2 深入技术细节121
4.1.3 suggester121
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 改变Apache Lucene的评分方式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 使用circuit breaker213
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 使用人类友好的Cat API 229
7.2.1 基础知识230
7.2.2 使用Cat API231
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 使用doc values来优化查询243
8.1.1 字段缓存存在的问题244
8.1.2 使用doc values的例子245
8.2 了解垃圾回收器247
8.2.1 Java内存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.1 Maven Java项目的结构285
9.2.2 POM的理念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

前言/序言

  欢迎来到Elasticsearch的世界并阅读本书第2版。通过阅读本书,我们将带领你接触与Elasticsearch紧密相关的各种话题。请注意,本书不是为初学者写的。笔者将本书作为《ElasticsearchServer,SecondEdition》的续作和姊妹篇。相对于《ElasticsearchServer》,本书涵盖了很多新知识,不过你偶尔也可以在本书中发现一些引自《ElasticsearchServer》的内容。

  本书将探讨与Elasticsearch和Lucene相关的多个不同主题。首先,我们以介绍Lucene和Elasticsearch的基本概念作为开始,带领读者认识Elasticsearch提供的众多查询方式。在这里,将涉及和查询相关的不同主题,比如结果过滤以及如何为特定场景选择合适的查询方式。显然,Elasticsearch不仅仅只有查询功能。因此,本书还将介绍Elasticsearch新加入的聚集功能,以及众多能够赋予被索引数据意义的特性,并设法提供更佳的用户查询体验。

  对大多数用户来说,查询和数据分析是Elasticsearch最吸引人的部分,不过这些还不是我们想要探索的全部内容。因此,本书在涉及索引架构时还会试图跟读者探讨一些额外话题,比如如何选择合适的分片数和副本数,如何调整分片分配行为等。当谈论Elasticsearch和Lucene之间的关系时,我们还将介绍不同的打分算法、算法之间的差异、如何选择合适的存储机制,以及为什么需要做此选择。

  最后,我们还将触及Elasticsearch的管理功能,将探讨发现和恢复模块,以及对人类友好的CatAPI。CatAPI可以帮助我们快速获取相关的运维信息,它的返回数据组织成一种大多数人都易于阅读的格式,无需进行JSON解析。我们还将认识和使用部落节点,它能够为我们提供在多个节点间联合查询的能力。

  因为本书的书名,我们无法忽略与性能相关的话题,所以我们决定用整整一章来探讨性能。我们谈论了文档取值及其相关改进,还介绍了垃圾回收器的工作方式,以及在垃圾回收器未能如我们期望般工作时可以做些什么。最后,探讨了如何扩展Elasticsearch以应对高索引量和查询量的场景。

  和本书第1版一样,我们决定以开发Elasticsearch插件的话题作为本书结尾。我们将展示如何构建ApacheMaven项目,并开发两个不同类型的插件—自定义REST操作插件和自定义分析插件。

  假如你在读完某些主题后对其产生浓厚的兴趣,那么这本书就是适合你的。希望你在读完后能够喜欢这本书。

  本书主要内容第1章先介绍ApacheLucene的工作方式,再介绍Elasticsearch的基本概念,并演示Elasticsearch内部是如何工作的。

  第2章描述Lucene评分过程,为什么要进行查询改写,什么是查询模板以及如何使用查询模板。除此之外,还介绍了过滤器的使用,以及如何为特定场景选择合适的查询方式。

  第3章描述了查询二次评分、多匹配控制,并介绍了用于做查询分析的各种聚合类型。关键词项聚合和最优词项聚合可以根据所含内容片段对文档进行归类。除此之外,还介绍了Elasticsearch的parent-child文档关系处理,并提供了在Elasticsearch中使用脚本的相关知识。

  第4章覆盖了有关用户体验提升的相关话题。本章介绍了查询建议(suggester),它能帮助修正查询中的拼写错误并构建高效的自动完成(autocomplete)机制。除此之外,通过实际的案例展示如何通过使用不同查询类型和Elasticsearch的其他功能来提高查询相关性。

  第5章介绍了以下技术:如何选择合适的分片及副本数,路由是如何工作的,索引分片机制是如何工作的以及如何影响分片行为。同时介绍了什么是查询执行偏好,以及它是如何影响查询执行的。

  第6章描述如何修改Lucene评分以及如何选择备用的评分算法。本章也介绍了Elasticsearch的准实时搜索和索引,事务日志的使用,理解索引的段合并,以及如何调整段合并来适应应用场景。在本章最后,还将介绍Elasticsearch的缓存机制和请求打断器,以避免出现内存用尽的故障。

  第7章介绍了什么是发现、网关、恢复模块,如何配置这些模块,以及有哪些令人心烦的疑难点。还介绍了什么是CatAPI,如何把数据备份到各种云服务上(比如亚马逊的AWS和微软的Azure),以及如何从云服务上恢复数据。最后还介绍了如何使用部落节点进行联盟搜索。

  第8章覆盖了与Elasticsearch性能相关的各种主题,从使用文档取值来优化字段数据缓存的内存使用,到JVM垃圾回收器的工作原理,再到查询基准测试,最后到如何扩展Elasticsearch以适应更高的索引量和查询量场景。

  第9章通过演示如何开发你自己的REST操作插件和查询语言分析插件来介绍Elasticsearch的插件开发。

  阅读本书的必备资源本书写作时采用了Elasticsearch的1.4.x版本,所有的范例代码应该能在该版本下正常运行。除此之外,读者需要一个能发送HTTP请求的命令行工具,例如curl,该工具在绝大多数操作系统上是可用的。请记住,本书的所有范例都使用了curl。如果读者想使用其他工具,请注意检查请求的格式,以保证你所选择的工具能正确解析它。

  除此之外,为了运行第9章的范例,需要读者的机器上已安装了JDK,并且需要一个编辑器来开发相关代码(或者类似



《分布式搜索与存储权威指南:从原理到实战》 核心理念: 这是一部全面深入剖析分布式搜索与存储技术的权威著作,旨在为读者构建坚实的技术底座,掌握如何设计、部署和优化高性能、高可用的搜索与存储系统。本书并非仅仅罗列API或操作步骤,而是从底层原理出发,深入挖掘核心机制,帮助读者理解“为什么”以及“如何做得更好”,从而应对实际工作中遇到的各种复杂挑战。我们将目光聚焦于分布式系统的本质,探讨数据在网络中的流转、一致性的达成、高可用性的保障以及性能的极致优化,最终构建起稳定可靠、响应迅捷的智能数据基础设施。 内容概览: 本书由浅入深,结构清晰,覆盖了分布式搜索与存储领域的方方面面。 第一部分:分布式系统的基石 分布式系统的核心挑战: 深入探讨在分布式环境中,数据的一致性、可用性、分区容错性(CAP理论)等核心难题。我们将以生动的案例和图示,阐述这些挑战对系统设计的影响,以及业界主流的解决方案。 数据分片与副本机制: 详解数据如何在多个节点之间进行切分(分片),以及如何通过副本机制来提高数据的可用性和容错能力。我们将剖析不同分片策略的优劣,以及副本同步的原理和常见的同步模型(如主从同步、多主同步)。 节点间通信与协调: 探讨分布式系统中节点之间如何进行高效、可靠的通信。我们将深入了解RPC(远程过程调用)的原理,以及ZooKeeper、etcd等分布式协调服务在维护集群状态、实现 leader 选举、分布式锁等方面的重要作用。 容错与故障恢复: 分析分布式系统可能遇到的各种故障场景,包括节点宕机、网络分区、数据损坏等。本书将重点介绍优雅的故障检测机制、优雅的故障转移策略,以及如何设计能够自动恢复的系统,最大限度地减少服务中断时间。 第二部分:分布式搜索引擎的核心原理 倒排索引的艺术: 深入解析搜索引擎的核心——倒排索引的构建原理。我们将从词项(term)到文档(document)的映射过程,详细讲解词典(dictionary)、文档列表(postings list)的存储结构,以及如何通过压缩技术(如变长编码、游程长度编码)来优化存储空间和查询性能。 查询处理与评分机制: 剖析用户查询是如何被解析、转换为倒排列表,并最终进行合并和排序的。我们将详细讲解TF-IDF、BM25等经典的文本相关性评分模型,以及如何通过调整参数来优化搜索结果的相关性。 分布式查询的优化: 探讨在分布式环境中,如何高效地执行跨多个节点的查询。我们将深入分析查询的路由机制、结果的聚合策略,以及如何通过缓存、预计算等技术来加速查询响应。 文本分析与语言处理: 介绍文本分析在搜索过程中的关键作用,包括分词(tokenization)、词干提取(stemming)、词形还原(lemmatization)、停用词(stopwords)过滤等。我们将探讨不同语言的文本处理特性,以及如何构建高效的中文分词器。 高级搜索特性: 探索更复杂的搜索需求,如短语搜索、邻近搜索、模糊搜索、模糊匹配(fuzzy matching)、同义词处理、拼写纠错等,并分析其实现原理和性能考量。 第三部分:分布式存储的关键技术 数据模型与存储引擎: 探讨不同的数据模型(如键值存储、文档存储、列式存储)及其适用场景。我们将深入理解各种存储引擎(如LSM-tree、B-tree)的设计思想,以及它们在读写性能、存储效率方面的权衡。 分布式事务与一致性模型: 深入分析在分布式环境下,如何保证数据的一致性。我们将详细介绍两阶段提交(2PC)、三阶段提交(3PC)等分布式事务协议,以及eventual consistency(最终一致性)、strong consistency(强一致性)等不同一致性模型的应用。 数据持久化与缓存策略: 探讨数据如何从内存持久化到磁盘,以及各种持久化机制(如WAL, Write-Ahead Logging)的原理。同时,我们将分析缓存技术在提高读性能方面的关键作用,以及各种缓存淘汰策略。 数据压缩与编码: 介绍多种数据压缩算法(如Gzip, Snappy, LZ4)及其在分布式存储中的应用,旨在减小存储空间、降低网络传输成本。 数据索引与查询优化: 除了全文索引,我们还将探讨其他类型的数据索引(如B-tree索引、哈希索引、空间索引)在分布式存储系统中的作用,以及如何根据查询模式优化索引结构。 第四部分:系统设计与实战 构建高性能的搜索服务: 结合前两部分的理论知识,本书将指导读者如何设计一个具备高吞吐量、低延迟的分布式搜索服务。我们将从集群规模、节点配置、硬件选择等角度进行深入剖析。 实现高可用与灾难恢复: 讲解如何通过负载均衡、故障转移、异地备份等手段,构建一个真正高可用、能够抵御大规模故障的分布式存储与搜索系统。 性能调优与监控: 提供一套完整的性能调优方法论,包括资源利用率分析、瓶颈识别、参数优化等。同时,将介绍常用的监控工具和指标,帮助读者实时掌握系统健康状况。 安全性设计: 探讨在分布式系统中,如何保障数据的安全,包括访问控制、数据加密、安全审计等方面的最佳实践。 实际案例分析: 通过分析业界成功的分布式搜索与存储系统的设计案例,让读者能够将所学知识融会贯通,理解不同业务场景下的技术选型与实现策略。 面向未来的思考: 展望分布式搜索与存储技术的未来发展趋势,如AI在搜索中的应用、下一代存储架构等。 本书特色: 原理驱动,深入本质: 告别“知其然不知其所以然”的学习模式,本书将带领读者深入理解每一个技术点背后的原理和设计哲学。 架构先行,系统思维: 强调分布式系统的整体架构设计,帮助读者构建全局观,理解各组件之间的协同工作。 理论与实践并重: 在讲解核心原理的同时,提供大量的技术细节和工程实践建议,确保读者能够将理论知识转化为实际能力。 图文并茂,易于理解: 运用大量的示意图、流程图和代码片段,将复杂的概念清晰地呈现出来,降低阅读门槛。 案例丰富,启发思考: 结合真实世界的应用场景和典型问题,帮助读者建立对分布式搜索与存储技术的深刻认识。 目标读者: 有志于深入理解分布式搜索与存储技术的技术人员。 需要设计、开发、部署和维护分布式搜索与存储系统的软件工程师、架构师。 对大数据技术、信息检索、分布式系统有浓厚兴趣的研究人员和学生。 希望提升系统性能、可用性和扩展性的运维工程师。 总结: 《分布式搜索与存储权威指南:从原理到实战》将是你构建强大、可靠、高性能数据基础设施的必备宝典。无论你是初入分布式领域,还是身经百战的资深开发者,本书都能为你带来深刻的启发和实用的指导,让你在瞬息万变的数字化浪潮中,构建出属于自己的核心竞争力。

用户评价

评分

我是一个对Elasticsearch抱有强烈好奇心的后端开发者,尤其是在日志分析和全文搜索方面,我一直希望能找到一本能够带我“玩转”它的权威指南。这本书的出现,恰恰填补了我的这一需求。作者在介绍搜索和聚合功能的时候,简直就像一位技艺精湛的厨师,将各种食材(数据)通过不同的烹饪手法(查询DSL)制作出美味佳肴(分析结果)。我特别喜欢他讲解聚合的那个章节,从基础的 `terms` 聚合到复杂的 `composite` 聚合,再到 `bucket` 聚合的嵌套使用,作者的讲解条理清晰,例子丰富,让我能够很快地掌握这些强大的分析能力。而且,作者还贴心地介绍了如何优化这些查询,避免常见的性能陷阱,这对于实际项目中的应用至关重要。我之前在处理大量日志数据的时候,经常会遇到查询缓慢的问题,读了这本书之后,我才意识到很多时候是自己的查询写法不够优化。这本书让我意识到,Elasticsearch不仅仅是一个搜索引擎,它更是一个强大的数据分析平台,而这本书,就是我通往这个平台的最佳向导。

评分

我是一名对Elasticsearch技术生态充满兴趣的技术爱好者,这本书为我打开了一扇深入了解Elasticsearch背后原理的大门。作者的叙述方式非常具有启发性,他不仅仅是罗列技术点,而是通过一个个精彩的故事和深入的思考,引导读者去探索Elasticsearch的“灵魂”。我特别喜欢作者在讲解Elasticsearch的进化历程和与其他组件(如Kibana, Logstash)的协同工作时的描述,这让我对整个技术栈有了更宏观的认识。书中对于Elasticsearch在高可用性、可扩展性和容错性方面的设计理念的阐述,让我对它的稳定性和健壮性有了更深的理解。我之前对Elasticsearch的许多高级特性,如冷热数据分离、快照与恢复等,都感到有些神秘,但通过这本书的解读,我逐渐拨开了迷雾,对这些功能有了清晰的认识。这本书不仅仅是一本技术手册,更是一次关于分布式系统设计哲学和实践的深度对话,让我受益匪浅。

评分

这本书的出版,对于我这个在Elasticsearch领域摸爬滚打多年的老兵来说,绝对是一个惊喜。我一直都在寻找一本能够系统性梳理Elasticsearch底层原理,并且能够挖掘出那些隐藏在API之下的深层机制的书籍,而这本书无疑满足了我的期待。作者在讲解分布式架构、分片和副本机制的时候,简直就像在拆解一个精密的机械装置,每一个齿轮的啮合,每一次数据的流动,都被描绘得淋漓尽致。尤其是关于集群选举和故障转移的部分,我之前一直觉得是个“黑盒子”,读完这本书,我才恍然大悟,原来背后是如此巧妙的设计和严谨的逻辑。作者并没有止步于简单的概念介绍,而是深入到源码级别的分析,虽然我可能不会去修改Elasticsearch的源码,但理解其内部工作原理,对于我优化查询、排查问题,甚至设计更健壮的系统,都有着不可估量的价值。这本书让我对Elasticsearch有了更深层次的敬畏,同时也更加自信能够驾驭这个强大的工具。我甚至觉得,这本书不仅仅是关于Elasticsearch,它更是一本关于分布式系统设计和思考的范本。

评分

这本书我拿到手已经有一段时间了,说实话,这本书的厚度一开始还是让我有点犹豫的,但当我翻开第一页,立刻就被作者的写作风格吸引了。他不是那种枯燥乏味的教科书式讲解,而是充满了生活化的比喻和深入浅出的分析。我尤其喜欢其中关于数据索引那一章节的阐述,作者通过一个非常形象的例子,把原本抽象的概念变得具体可感。读到那里,我才真正理解了倒排索引的精髓,以及它如何让Elasticsearch如此高效地进行搜索。而且,作者在讲解过程中,并没有回避一些技术细节,而是用一种循序渐进的方式,引导读者一步步深入。每当我遇到一个不理解的概念,稍加留意,作者就会在后面的段落中给予详细的解释,仿佛他能读懂我的心思一样。书中穿插的那些实际应用场景的分析,更是让我茅塞顿开,我立刻就能联想到自己工作中遇到的那些痛点,并开始思考如何用Elasticsearch来解决。我一直觉得,学习技术最怕的就是“纸上谈兵”,但这本书的作者显然在这方面做得非常出色,他让每一个技术点都有落地的可能性。对于我这种刚接触Elasticsearch不久的开发者来说,这本书简直就是一座宝藏,它不仅仅是知识的传递,更是一种思维方式的启迪。

评分

我是一名正在学习和使用Elasticsearch的数据科学家,一直希望能够深入了解它的底层架构和工作原理,以便更好地处理和分析海量数据。这本书的语言风格非常专业,但又不失严谨和易读性。作者在讲解数据模型、文档结构以及索引映射时,逻辑清晰,层次分明。我尤其欣赏作者在分析 `_source` 字段、 `doc_values` 和 `fielddata` 的区别与应用场景时,非常到位。这对于我进行高效的数据检索和聚合至关重要。书中关于索引优化和查询调优的部分,更是干货满满,提供了许多实用的建议和技巧,让我能够根据实际数据特点,设计出更优的索引策略和查询语句。读完这本书,我对Elasticsearch的数据存储和检索机制有了全新的认识,也更加理解了它在处理大规模数据集时的强大能力。这本书让我觉得,我不仅仅是在学习一个工具,更是在学习一种处理数据的科学方法。

评分

东西不错,下次继续购买,点赞京东,618买的,比较划算,支持

评分

京东买东西,商品+配送都靠谱!

评分

不错不错不错不错不错不错

评分

非常好,介绍得跟细致,入门的一本好书

评分

物流很快,京东物流给力,书包装也很好,内容还没来得及看

评分

经典书籍 必须买一本纸质书籍 经常学习 推荐购买

评分

不错,不错不适合初学者,可以先看一下elasticsearch服务端编程

评分

非常好,推荐大家购买!

评分

好好好,五星好评,。。。。。。。。。。。。。。。。。。。。。。。。。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有