Elasticsearch服务器开发(第2版)pdf

2018年12月19日13:56:16 发表评论 157
摘要

Elasticsearch是基于Lucene的新一代分布式、RESTful风格的开源搜索引擎,具有实时搜索、稳定、快速、安装使用方便等优点。Elasticsearch在全球拥有众多知名用户:GitHub使用Elasticsearch搜索20 TB的数据——包括13亿文件和1300亿行代码,有“音频分享界YouTube”之称的SoundCloud使用Elasticsearch为1.8亿会员在线即时提供音频搜索结果,德国商务社交网站Xing使用Elasticsearch为1400万会员提供可扩展、实时的搜索,手机服务网站Foursquare使用Elasticsearch实时搜索5000万个地点,浏览器插件StumbleUpon利用Elasticsearch每天向它们的社区发送数百万条推荐。

Elasticsearch服务器开发(第2版) 内容简介

《Elasticsearch服务器开发(第2版)》这一版针对Elasticsearch的新版本更新了内容,增加了第1版中遗漏的重要内容。本书首先介绍如何启动和运行Elasticsearch、Elasticsearch的基本概念,以及如何以最基本的方式索引和搜索数据。接下来,本书讨论了Querydsl查询语言,通过它可?#28304;?#24314;复杂的查询并过滤返回的结果。?#36865;猓?#26412;书还展示了如何使用切面技术(faceting)基于查询结果来计算汇总数据,如何使用新引进的聚合框架,如何使用Elasticsearch的空间搜索和预搜索。最后,这本书将阐释Elasticsearch的管理API,如分片安?#27599;?#21046;?#22270;?#32676;处理等功能。

不管你是全文检索和Elasticsearch的初学者,还是使用过Elasticsearch,你都能从本书中有所收获。

Elasticsearch服务器开发(第2版) 目录

第1章Elasticsearch集群入门1

1.1全文检索1

1.1.1Lucene词汇表?#22270;?#26500;1

1.1.2输入数据分析3

1.1.3评分和查询相关性4

1.2Elasticsearch基础4

1.2.1数据架构的主要概念4

1.2.2Elasticsearch主要概念6

1.2.3索引建立和搜索6

1.3安?#23433;?#37197;置集群8

1.3.1安装Java8

1.3.2安装Elasticsearch8

1.3.3在Linux上用二进制包安装Elasticsearch9

1.3.4目录布局9

1.3.5配置Elasticsearch10

1.3.6运行Elasticsearch11

1.3.7关掉Elasticsearch12

1.3.8Elasticsearch作为系统服务运行13

1.4用RESTAPI操作数据14

1.4.1理解Elasticsearch的RESTfulAPI14

1.4.2在Elasticsearch中存储数据15

1.4.3新建文档15

1.4.4检索文档16

1.4.5更新文档17

1.4.6?#22659;?#25991;档18

1.4.7版本控制18

1.5使用URI请求查询来搜索20

1.5.1示例数据20

1.5.2URI请求20

1.5.3Lucene查询语法26

1.6小结27

第2章索引28

2.1Elasticsearch索引28

2.1.1分片和副本28

2.1.2创建索引29

2.2?#25104;?#37197;置31

2.2.1类型确定机制31

2.2.2索引结构?#25104;?3

2.2.3不同的相似度模型43

2.2.4信息格式45

2.2.5文档值47

2.3批量索引以提高索引速度48

2.3.1为批量索引准备数据48

2.3.2索引数据48

2.3.3更快的批量请求50

2.4用附加的内部信息扩展索引结构50

2.4.1标识符字段50

2.4.2_type字段51

2.4.3_all字段52

2.4.4_source字段52

2.4.5_index字段53

2.4.6_size字段54

2.4.7_timestamp字段54

2.4.8_ttl字段55

2.5段合并介绍56

2.5.1段合并56

2.5.2段合并的必要性56

2.5.3合并策略57

2.5.4合并调度器57

2.5.5合并因子57

2.5.6调节58

2.6路由介绍58

2.6.1默认索引过程59

2.6.2默认搜索过程59

2.6.3路由61

2.6.4路由参数62

2.6.5路由字段62

2.7小结63

第3章搜索64

3.1查询Elasticsearch64

3.1.1示例数据65

3.1.2简单查询66

3.1.3分页和结果集大小67

3.1.4返回版本值68

3.1.5限?#39057;?#20998;69

3.1.6选择需要返回的字段69

3.1.7使用脚本字段71

3.2理解查询过程72

3.2.1查询逻辑72

3.2.2搜索类型73

3.2.3搜索执行偏好74

3.2.4搜索分片API75

3.3基本查询76

3.3.1词条查询76

3.3.2多词条查询77

3.3.3match_all查询77

3.3.4常用词查询78

3.3.5match查询79

3.3.6multi_match查询81

3.3.7query_string查询82

3.3.8simple_query_string查询84

3.3.9标识符查询84

3.3.10前缀查询84

3.3.11fuzzy_like_this查询85

3.3.12fuzzy_like_this_field查询86

3.3.13fuzzy查询86

3.3.14通配符查询88

3.3.15more_like_this查询88

3.3.16more_like_this_filed查询89

3.3.17范围查询90

3.3.18最大分查询90

3.3.19正则表达式查询91

3.4?#26149;?#26597;询91

3.4.1布尔查询92

3.4.2加权查询93

3.4.3constant_score查询94

3.4.4索引查询94

3.5查询结果的过滤95

3.5.1使用过滤器95

3.5.2过滤器类型96

3.5.3过滤器的缓存104

3.6高?#26009;?#31034;105

3.6.1高?#26009;?#31034;入门105

3.6.2字?#38395;?#32622;106

3.6.3深入底层107

3.6.4配置HTML标签107

3.6.5控制高?#30103;?#27573;108

3.6.6全局设置与?#26893;可?#32622;108

3.6.7需要匹配109

3.6.8信息高亮器111

3.7验证查询113

3.8数据排序115

3.8.1默认排序115

3.8.2选择用于排序的字段116

3.8.3指定缺少字段的行为118

3.8.4动态条件118

3.8.5排序规则和国家特有字符119

3.9查询重写119

3.9.1重写过程示例119

3.9.2查询重写的属性120

3.10小结121

第4章扩展索引结构122

4.1索引树形结构122

4.1.1数据结构122

4.1.2分析123

4.2索引非扁平数据124

4.2.1数据124

4.2.2对象125

4.2.3数组125

4.2.4?#25104;?25

4.2.5向Elasticsearch发送?#25104;?27

4.2.6动态还是非动态127

4.3使用嵌套对象128

4.4使用父子关系131

4.4.1索引结构和数据索引131

4.4.2查询132

4.4.3父子关系和过滤134

4.4.4性能考虑134

4.5使用更新API修改索引结构135

4.5.1?#25104;?35

4.5.2添加一个新字段135

4.5.3修改字段136

4.6小结137

第5章更好的搜索138

5.1ApacheLucene评分简介138

5.1.1当文?#24403;黄?#37197;时138

5.1.2默认评分公式139

5.1.3相关性的意义140

5.2Elasticsearch的脚本功能140

5.2.1脚本执行过程中可用的对象140

5.2.2MVEL141

5.2.3使用其他语言141

5.2.4使用自定义脚本库142

5.3搜索不同语言的内容145

5.3.1区分处理不同语言145

5.3.2多语?#28304;?#29702;145

5.3.3检测文档的语言146

5.3.4示例文档146

5.3.5?#25104;?#25991;件147

5.3.6查询148

5.4使用查询加权影响得分150

5.4.1加权150

5.4.2为查询添加加权150

5.4.3修改得分153

5.5索引时加权何时有意义160

5.5.1在输入数据中定义字段加权160

5.5.2在?#25104;?#20013;定义加权161

5.6同义词161

5.6.1同义?#20351;?#28388;器161

5.6.2定义同义?#20351;?#21017;162

5.6.3查询时或索引时的同义词扩展164

5.7理解解释信息164

5.7.1理解字段分析164

5.7.2解释查询165

5.8小结167

第6章超越全文检索168

6.1聚合168

6.1.1一般查询结构168

6.1.2可用的聚合170

6.1.3聚合的嵌套185

6.1.4桶排序和嵌套聚合187

6.1.5全局和子集187

6.2切面190

6.2.1文档结构190

6.2.2返回的结果190

6.2.3使用查询进行切面计算191

6.2.4使用过滤器进行切面计算192

6.2.5terms切面193

6.2.6基于范围的切面194

6.2.7数值和日期直方图切面196

6.2.8数值型字段统计数据的计算197

6.2.9词条统计数据的计算198

6.2.10地理切面199

6.2.11切面结果的过滤200

6.2.12内存考虑201

6.3使用建议器201

6.3.1可用的建议器类型201

6.3.2包含建议器201

6.3.3term建议器203

6.3.4phrase建议器204

6.3.5completion建议器205

6.4预匹配器209

6.4.1示例索引209

6.4.2预匹配器的准备209

6.4.3深入211

6.5文件的处理214

6.6地理217

6.6.1为空间搜索准备?#25104;?17

6.6.2示例数据218

6.6.3示例查询218

6.6.4任意地理形状222

6.7卷动API226

6.7.1问题定义226

6.7.2作为解决方案的卷动226

6.8多词条过滤器228

6.9小结232

第7?#24459;?#20837;Elasticsearch集群233

7.1节点发现233

7.1.1发现的类型233

7.1.2主节点234

7.1.3设置集群名235

7.1.4节点的ping设置236

7.2时光之门与?#25351;?#27169;块236

7.2.1时光之门236

7.2.2?#25351;?#25511;制237

7.3为高查询和高索引吞吐量准备Elasticsearch集群238

7.3.1过滤器缓存238

7.3.2字段数据缓存和断路器238

7.3.3存储模块239

7.3.4索引缓冲和刷新率240

7.3.5线程池的配置240

7.3.6结合起来,一些通用建议241

7.4模板和动态模板244

7.4.1模板244

7.4.2动态模板245

7.5小结246

第8?#24405;?#32676;管理248

8.1Elasticsearch时光机248

8.1.1创建快照存储库248

8.1.2创建快照249

8.1.3还原快照251

8.1.4清理:?#22659;?#26087;的快照252

8.2监控集群的状态和健康度252

8.2.1集群健康度API252

8.2.2索引统计API253

8.2.3状态API256

8.2.4节点信息API256

8.2.5节点统计API257

8.2.6集群状态API257

8.2.7挂起任务API258

8.2.8索引段API258

8.2.9catAPI258

8.3控制集群的再平衡260

8.3.1再平衡260

8.3.2集群的就绪260

8.3.3集群再平衡设置260

8.4控制分片和副本的分配261

8.4.1显式控制分配262

8.4.2集群范围的分配264

8.4.3每个节点上的分片和副本数量265

8.4.4手动移动分片和副本265

8.5预热267

8.5.1定义一个新的预热查询267

8.5.2获取定义的预热查询268

8.5.3?#22659;?#19968;个预热查询269

8.5.4禁用预热功能269

8.5.5查询的选择270

8.6使用索引别名来简化你的日常工作270

8.6.1别名271

8.6.2创建别名271

8.6.3修?#35851;?#21517;271

8.6.4合并命令272

8.6.5获取所有别名272

8.6.6移除别名273

8.6.7别名中的过滤273

8.6.8别名和路由273

8.7Elasticsearch插件274

8.7.1基础知识274

8.7.2安?#23433;?#20214;274

8.7.3移除插件275

8.8更新设置API275

8.9小结276

Elasticsearch服务器开发(第2版) 精彩文摘

1.1.2 输入数据分析

当然,问题是,传入文档中的数据怎样转化成?#21476;?#32034;引,查询文本怎样变成可被搜索的词?#31354;?#20010;数据转化的过程被称为分析。你可能希望某些字段经语言分析器处理,使得car和cars在索引中被视为同一个。另外,你可能希望另一些字段只用空格或者小写划分。

分析的工作由分析器完成,它由一个分词器(tokenizer)和零个或多个标记过滤器(token filter)组成,也可以有零个或多个字符?#25104;?#22120;(character mapper)。

图书网:Elasticsearch服务器开发(第2版)pdf

?#20439;?#28304;?#30053;?#20215;格为5图书币,请先
会员充值优惠:充50图书币送30图书币。(本优惠每人仅限一次)
  • 我的微信
  • 扫一扫加好友
  • weinxin
  • 微信公众号
  • 扫一扫关注
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: