|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《深入理解ElasticSearch》- w' }) n* C. T- Z
java电子书推荐理由:介绍ApacheLucene的工作方式、ElasticSearch的基本概念、描述Lucene评分机制、如何进行查询重写,另外还介绍ElasticSearch的批处理API及如何使用过滤器来优化查询、介绍如何为具体应用选择正确的目录实现,同时阐述发现、网关、恢复模块及其配置方式,以及调优ElasticSearch的缓存机制。介绍JVM垃圾收集的工作原理、重要性以及如何调优,还介绍如何控制ElasticSearch的I/O操作数量和如何诊断ElasticSearch中的问题。3 W% v! ]$ C* U4 a: t) n% S
9 ] P0 o' E, c. ^0 h作者:[美] 拉斐尔·酷奇) N; J5 [7 p6 v) y
出版社:机械工业出版社
$ m4 t- M, F1 h出版时间:2016年01月
! F; i6 K' Y: E& v/ k" H
% |0 U# A6 ]7 D r9 o
) H1 I+ K7 r. x6 ^
/ Y+ p$ y5 u6 v ajava电子书目录:$ A* k- I+ O2 W/ ?% m0 k+ K7 I
第1章 ElasticSearch简介1. f% ]- F6 f" H; ]7 z1 g+ O
1.1 Apache Lucene简介1+ l% X# x) \3 ~; {
1.1.1 熟悉Lucene2
' ~) t% [9 Z' u8 G1.1.2 Lucene的总体架构2
* R0 c: W1 j/ T1.1.3 分析你的数据3
2 `7 b4 J# b- N1.1.4 Lucene查询语言4
/ |: D$ ?( l' b6 ^' h) U! ?* H1.2 ElasticSearch简介6
1 ~: l! Y1 b7 b8 u; L; [1.2.1 ElasticSearch的基本概念75 X3 t' L+ } {0 P# @& |2 F
1.2.2 ElasticSearch架构背后的关键概念8
& q; N- b% i4 _% N- Z, }% h- M1 h1.2.3 ElasticSearch的工作流程9 z; ~6 W, p* B: A, P
1.3 小结13
: P2 v U) B/ [( q第2章 查询DSL进阶14
0 [ J/ \6 }5 f. i( W2.1 Apache Lucene默认评分公式解释14
2 h$ f2 }+ Y# {0 Z3 C. \3 T2.1.1 何时文档被匹配上150 T& B2 Z' E3 m& y H3 f6 p
2.1.2 TF/IDF评分公式155 L% _$ C* k) ^( M# K/ a
2.1.3 ElasticSearch如何看评分16
! k- k4 [3 d4 s5 ?* u4 V2.2 查询改写177 c' z: p1 ~9 R# g4 a8 S3 O
2.2.1 前缀查询范例17
# y$ F% X9 y6 \3 @ b/ k6 a$ n2.2.2 回顾Apache Lucene19
6 k/ x2 u: T& R* ^& z% s) q/ n3 @& Y2.2.3 查询改写的属性20+ C+ S1 x. H+ @0 o
2.3 二次评分21
3 [9 c7 p* p8 s- F- X2 A2.3.1 理解二次评分21
) O3 l' y8 D+ y2.3.2 范例数据21) \+ i5 U$ c' x6 h3 e9 V
2.3.3 查询22
% F. `9 c! M; r' v2.3.4 二次评分查询的结构22
+ e4 r4 o( P5 q5 {2.3.5 二次评分参数配置23( [2 e& E8 k. t
2.3.6 小结24. W5 y- x; P; Y+ f' [0 t
2.4 批量操作24
( |0 S9 p4 g6 i; Q; H# H' h4 e2.4.1 批量取24
9 L* |, N) j* D3 g3 T2.4.2 批量查询26
c8 N w9 G/ [ D2.5 排序27% r; z2 u2 |" c8 o
2.5.1 基于多值字段的排序28, Y8 R2 a X8 z! g& w
2.5.2 基于多值geo字段的排序28
+ r* x# Y* }/ l8 c* H2.5.3 基于嵌套对象的排序30
3 w9 d" m; o% G; f2 I% g: ~2.6 数据更新API31; s! i5 X. \- t
2.6.1 简单字段更新315 ~# }" B) H4 D
2.6.2 使用脚本按条件更新32. b) g, X l* v6 W. `* `
2.6.3 使用更新 API创建或删除文档334 E/ @8 P! C1 r+ S
2.7 使用过滤器优化查询33/ |6 C& [* B6 @) Q1 j( m
2.7.1 过滤器与缓存342 y* b* m7 Y- ?' ~- \% j. B
2.7.2 词项查找过滤器36
$ h H9 ~* m1 x$ |# S' t2 y2.8 ElasticSearch切面机制中的过滤器与作用域40
4 t( w. K$ t2 D# B, c* h! H- Y$ v3 A$ g2.8.1 范例数据40) R! {: ^) L+ R! L8 V; V8 M
2.8.2 切面计算和过滤41, D- B1 `+ H6 u! O
2.8.3 过滤器作为查询的一部分42
, n' q- y) \+ y0 @( d2.8.4 切面过滤器44; Y3 z4 m p U4 n$ y- H
2.8.5 全局作用域45
. L* _$ f6 n5 D: u3 l! X% c; ^3 T+ w7 [2.9 小结47
! H9 l6 d* U8 |* E8 J" d! @) p6 K) x第3章 底层索引控制48
# _6 [- j ~- i/ O2 e; w% [4 P8 g2 N3.1 改变Apache Lucene的评分方式48
) d' Q/ Z2 |' o; [* ~6 I3.1.1 可用的相似度模型497 G9 _ |4 a& r$ u/ C0 W' M# d
3.1.2 为每字段配置相似度模型49) n, f2 b$ Q9 N" z# s+ h$ D$ U
3.2 相似度模型配置50$ v( [$ s% G: a- R
3.2.1 选择默认的相似度模型518 \/ s$ p' L* H2 h- J' Y( y
3.2.2 配置被选用的相似度模型52- E% M0 ?! k2 A' k4 R3 N7 W
3.3 使用编解码器53
+ E* [7 L9 e T3.3.1 简单使用范例53+ ^( ~! E& \ j# Q9 ~9 \7 E
3.3.2 工作原理解释54: n n! \( u6 N# W5 q
3.3.3 可用的倒排表格式558 f2 ]8 C, B- q8 j. g+ A5 q4 u% x
3.3.4 配置编解码器56% y. W+ ? O, [7 b+ G1 c
3.4 准实时、提交、更新及事务日志582 p& t# [" k2 j. z6 w
3.4.1 索引更新及更新提交592 q: _' p: W2 ^! u! a
3.4.2 事务日志60
. R# ^" q- t+ ^$ @3.4.3 准实时读取62
* S% ~. i2 ]- b# J7 k9 T! V- I3.5 深入理解数据处理620 b+ e7 J4 e3 @* b8 I( Z1 x1 H. R
3.5.1 输入并不总是进行文本分析62
- l% k/ ?! v: ^& w6 D$ \7 r" G3.5.2 范例的使用65, u, u' {4 x2 `2 `
3.5.3 索引期更换分词器676 Y6 |7 J) x: D" N; X0 R& ~; @8 V; d9 L
3.5.4 搜索时更换分析器68
; ~# y4 i7 E0 i$ l! U9 m3.5.5 陷阱与默认分析68
# h, F2 ] _ d7 x3.6 控制索引合并68
( c4 e# u; m9 \# R w3.6.1 选择正确的合并策略69
' X8 @0 E, v. K/ ^# x1 K3.6.2 合并策略配置70) J( j$ w$ R7 j+ `5 z" Y' Y
3.6.3 调度72, c- n5 j. v1 j9 m/ B+ Q0 x
3.7 小结73
5 ~/ u) J H1 j6 s2 w+ M第4章 分布式索引架构74
2 z: U: U$ R( |1 ^) L& {4.1 选择合适的分片和副本数74, R; q) v$ G8 B6 y
4.1.1 分片和过度分配75 F6 r8 K& a. E8 d' z5 N
4.1.2 一个过度分配的正面例子75
5 J! ^: O8 e- f* `6 \4.1.3 多分片与多索引76
: i% x. c3 R7 l4.1.4 副本76$ }- }4 O F& @7 P* F; g4 }9 y4 V& {
4.2 路由76) }, z! M @$ A( x( P- Z$ n
4.2.1 分片和数据77! `3 H3 S% P4 g* F5 Q- x7 v
4.2.2 测试路由功能77
) ]+ I6 y8 @: q; c: R1 r4.2.3 索引时使用路由80
% {9 \+ H8 r3 N2 r. Q! O+ H4.2.4 别名83
4 ?# O# P( L5 F- p1 m4.2.5 多个路由值834 a6 [8 C5 E$ v
4.3 调整默认的分片分配行为846 z, P7 [: O( k' M# A3 H$ ^* `8 y
4.3.1 分片分配器简介84
& F- y* S# S/ P4 x. M* g C4.3.2 even_shard 分片分配器84
' K4 C3 N+ @' r4.3.3 balanced分片分配器85: h& _ ~, O5 D `* q, a$ ^' X/ E8 X% s
4.3.4 自定义分片分配器85
6 u. ?$ }7 \9 @) I& P! Q/ I4.3.5 裁决者863 h% ^6 Z1 V& F; T
4.4 调整分片分配88
0 K# Q, c( e, ?4.4.1 部署意识89+ _, J0 p: C: z# X5 a# C
4.4.2 过滤919 E9 s# Y; u( y+ P2 {& W' F1 v- K
4.4.3 运行时更新分配策略92+ y S5 |7 \1 l5 D
4.4.4 确定每个节点允许的总分片数93, O9 L/ }/ }' D! U# k; `$ P
4.4.5 更多的分片分配属性967 K" v; R$ }3 I9 i2 J
4.5 查询执行偏好97
; B( ?3 l( P* F6 a) |* h2 W4.6 应用我们的知识99) \$ y4 K$ ^+ U( T: V! X! g( q
4.6.1 基本假定997 u# R) G* M4 j$ _9 l
4.6.2 配置100
& _& S6 h) f' u* a! J0 X& R. x1 K4.6.3 变化来了104
7 Y# c# Q4 j+ x8 [/ j4.7 小结105
5 e3 o3 W1 Q5 W3 \第5章 管理ElasticSearch106) S, t) |- `1 X: A# V+ Q
5.1 选择正确的目录实现-存储模块106
9 u) z5 d* F+ e5.2 发现模块的配置109
3 H8 k+ |8 t% n% H! `: I2 M5.2.1 Zen发现1099 o* {: K P+ u
5.2.2 亚马逊EC2发现111
. c2 u' B+ ?/ r& \* E$ q5.2.3 本地网关1141 t( M. Y& G$ N: j4 Q8 B" L7 i8 G+ J
5.2.4 恢复配置115
8 f- g" U+ d/ E2 n9 h5.3 索引段统计116
4 a+ O; \. p; {1 K% q+ ~9 t. X5.3.1 segments API简介1163 {5 x) U. E) D6 {8 Z
5.3.2 索引段信息的可视化118
8 k G; ~+ I) x. M1 ?" Z5.4 理解ElasticSearch缓存1192 r- T ?1 M9 T/ [; e& e) K# B& s
5.4.1 过滤器缓存119. I% u( J9 H" I6 x( F3 M
5.4.2 字段数据缓存121
% i! Q; ^2 o; U3 ^5.4.3 清除缓存126% b9 U$ M( v/ ]2 Z8 J5 R* ~
5.5 小结127
( K# C; j3 m# z9 S' @$ L/ \: e. _第6章 故障处理129* Y6 _7 z, w, ~" w' M
6.1 了解垃圾回收器129" C- `% s# Z h1 w
6.1.1 Java内存130
- w- k, b2 y9 k* g d+ u6 }# u2 [- v6.1.2 处理垃圾回收问题131+ x `& y/ X/ b# I% u
6.1.3 在类UNIX系统中避免内存交换1351 R: E$ o! h4 Q* t& G
6.2 关于I/O调节1369 @: _$ E/ Q$ }) q
6.2.1 控制IO节流136! O% T. I) m/ s' R0 h& X* K: i
6.2.2 配置136: M* i% x* W8 E8 o4 P5 v3 a C
6.3 用预热器提升查询速度138
9 [, W. ~/ @! N7 ]. o- P6.3.1 为什么使用预热器138
* [. N a3 Y, L9 {" m+ h2 i6.3.2 操作预热器138# H- {6 m/ [/ z1 h
6.3.3 测试预热器141
! n4 l/ ]: U1 F) a& w k# R ^6.4 热点线程144 R0 v7 T3 P. E* M
6.4.1 澄清热点线程API的用法误区145" v9 C! J& r. x/ F: d; s
6.4.2 热点线程API的响应信息145
7 U1 `& r* |3 ~- }9 J: x/ E6.5 现实场景1467 d5 @! a3 `3 |2 o( m. G
6.5.1 越来越差的性能146% k2 }0 L+ j1 w8 O: T) y
6.5.2 混杂的环境和负载不平衡148
! w0 s% a7 m7 k( C) o6.5.3 我的服务器出故障了149+ z+ h8 d8 k5 a- b( o$ F& t4 }
6.6 小结1505 C9 J; ? n$ u; [
第7章 改善用户搜索体验151
4 [1 {1 r N, \+ `3 q7.1 改正用户拼写错误151' L- `7 A e' z7 n: x$ e( o g
7.1.1 测试数据152
, }4 |& [; \! S* B' W0 c7.1.2 深入技术细节1521 w$ a" }; T+ C+ Y7 E7 m
7.1.3 completion suggester168
' x) ]6 }2 c$ J0 y7 R; i8 h/ |; O7.2 改善查询相关性1723 s' k& D) G. n Y8 N& X: x7 B4 Y1 |
7.2.1 数据172
, a& g1 T) S/ D7.2.2 改善相关性的探索之旅174
+ D2 ]5 T9 D5 i" C/ ?$ E7.3 小结188% C% l6 x8 f- c. F1 T* [2 b# X
第8章 ElasticSearch Java API189
8 s4 d7 V4 D! M w7 t% h8.1 ElasticSearch Java API简介189
, ^# \% w; x" N! R/ c8.2 代码190
1 f) ^) z+ g. k8.3 连接到集群191$ |, |+ p! Q8 ~
8.3.1 成为ElasticSearch节点191
. I* D9 s' H; z7 T6 ~8.3.2 使用传输机连接方式192
! S) C3 @- u) y) E8.3.3 选择合适的连接方式193, b2 Z/ w A3 D1 a
8.4 API剖析1944 \0 E8 ?; e' d$ c% |
8.5 CRUD操作195
* M t; F- E4 p8.5.1 读取文档1957 H6 _9 T6 C( P' C- a8 x3 t
8.5.2 索引文档197
2 f/ S1 \' Q* b2 f2 T; |8.5.3 更新文档1996 g2 i; W: I4 g+ M4 }
8.5.4 删除文档2014 c1 x! g2 z& Q( J- k& s7 f
8.6 ElasticSearch查询203. x7 G4 S4 t6 N1 [7 M/ o- ]
8.6.1 准备查询请求203
% I. \4 M; B7 J) Y% y) _. Y8.6.2 构造查询203& s* Q! h; `" V. G
8.6.3 分页206
5 C; l/ s+ C+ ^8.6.4 排序207% G1 V2 e# c" o+ `
8.6.5 过滤207! Q% |& E4 T R# }, d3 a
8.6.6 切面计算2081 k0 m, A" [9 {) P8 {
8.6.7 高亮209: A# G3 t0 e r8 f3 Q. Q$ v6 i
8.6.8 查询建议209
( _2 V8 I. z4 ?1 Y, ?6 A8.6.9 计数210( A1 U1 u8 G/ N$ w [
8.6.10 滚动211, Y. m7 o" q0 ?' u4 W9 J
8.7 批量执行多个操作211" n! o; t. V6 U
8.7.1 批量操作211
" @' C/ f: A. V% {6 H) ]8.7.2 根据查询删除文档212
/ o. M: X1 y4 d @6 u8.7.3 Multi GET212
7 H; `/ N9 w/ q8 N, d2 z4 \0 b# {8.7.4 Multi Search212
8 @ A4 P+ Y( ]$ A; s& b8.8 Percolator213
4 {$ T2 h4 a7 C) i' X; q8.9 explain API214
) o/ V1 S! { S8.10 构造JSON格式的查询和文档214 F- A/ a, W4 x3 s* u1 T
8.11 管理API216
& ]& r: l' @ v6 w6 E8 Q8.11.1 集群管理API2161 A) O) {0 H+ c! \
8.11.2 索引管理API219; s! B. w# Y) u* f" I
8.12 小结226
$ j( n! s4 c: `3 |1 W. T3 ]5 q第9章 开发ElasticSearch插件227# b0 a8 r; a% }3 M' ^% @7 z3 j4 A' D
9.1 建立Apache Maven项目结构227/ C- A8 r7 I- K- ~7 w6 @7 ]5 Y
9.1.1 了解基本知识228
0 t& \1 |4 F/ [9 f9.1.2 Maven Java项目的结构2280 D1 R" ~# g% Y; I3 m5 X/ ?
9.1.3 POM的理念228
M. C2 E. ]% l9.1.4 运行构建过程2297 L; Z) D3 t; O4 W; v; Q
9.1.5 引入Maven装配插件230
, \; i2 z: C5 h* l& u+ J+ s/ g% U% V c9.2 创建一个自定义river插件232 E& v- [$ s8 |" P' K4 B- A
9.2.1 实现细节232
7 P B$ a' [ E, y$ L0 F% F9.2.2 测试river2385 x9 }) u% i! W& w( D' z0 \$ b
9.3 创建自定义分析插件240/ Y( d& m3 `8 F" X; n& Y% |, F" S
9.3.1 实现细节240! l: f% ] b: E
9.3.2 测试自定义分析插件247. D t I8 G% ?" p2 j3 e
9.4 小结249 e/ Y4 u+ ]- r. F0 V" C* B3 b2 ^
2 m2 F& R$ @ }" s百度网盘下载地址链接(百度云)下载地址:java自学网(javazx.com)深入理解ElasticSearch PDF 高清 电子书 百度云.rar【密码回帖可见】
6 y& z4 x/ J/ ^- A: a" B, V( E7 g; f }7 X" v+ h) d
1 g8 D/ ?5 \! C& e8 b$ C
( ~, a5 k" m, J" E8 H
- \1 @5 t4 @: ~# U% {* I |
|