|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《深入理解ElasticSearch》' c6 r3 k+ y2 i, H
java电子书推荐理由:介绍ApacheLucene的工作方式、ElasticSearch的基本概念、描述Lucene评分机制、如何进行查询重写,另外还介绍ElasticSearch的批处理API及如何使用过滤器来优化查询、介绍如何为具体应用选择正确的目录实现,同时阐述发现、网关、恢复模块及其配置方式,以及调优ElasticSearch的缓存机制。介绍JVM垃圾收集的工作原理、重要性以及如何调优,还介绍如何控制ElasticSearch的I/O操作数量和如何诊断ElasticSearch中的问题。
' m5 W) c/ X' u- ]2 P" L- S$ t1 K1 T) c3 T, d
作者:[美] 拉斐尔·酷奇 O2 u1 |! f& l6 |! U- q1 P/ ]
出版社:机械工业出版社
- z5 t6 Y2 q) ~: c3 i" q& B出版时间:2016年01月
" _( W1 c0 h$ n( d$ f/ h" T* ^' @
" Z# v) T9 ~% d2 A7 k& z6 ~
- E/ K5 w; k( X) |" A
java电子书目录:& K7 M& \/ Q4 A
第1章 ElasticSearch简介1
' t K- G, o F! S h; N1.1 Apache Lucene简介1
; ^. i9 u: r7 s. U9 C( T* Q: P1.1.1 熟悉Lucene2
* l" k+ o# D2 [9 ~) ^0 u* n) k1.1.2 Lucene的总体架构2" B' j. `8 {3 W! |
1.1.3 分析你的数据3" }. X) t5 e' O6 {5 E
1.1.4 Lucene查询语言4( j# |, B* d7 a; l
1.2 ElasticSearch简介6
M$ m8 a0 K7 O& g* j3 C; P1.2.1 ElasticSearch的基本概念7- K- F! T& t4 x
1.2.2 ElasticSearch架构背后的关键概念8
3 R `3 L& D$ D3 t; @0 G1.2.3 ElasticSearch的工作流程9
) V/ h& G* J8 a1.3 小结13
6 F$ U6 d1 w2 P' w$ B第2章 查询DSL进阶14' l, Y" U0 V$ a& _7 L- T
2.1 Apache Lucene默认评分公式解释14% j" X3 g& ?5 ?$ _% @; c* ?" |
2.1.1 何时文档被匹配上15( G$ A3 j$ Y( t+ H0 a, p5 H0 j5 _
2.1.2 TF/IDF评分公式15
1 o' W5 I$ t# \, A! K' r% f: ]2.1.3 ElasticSearch如何看评分168 x: c" k; q% [( e& x
2.2 查询改写17
- a/ a! @( q& a$ ?4 j5 Q2.2.1 前缀查询范例176 n* P+ o! R) J4 ~
2.2.2 回顾Apache Lucene193 Q' N- j G. N" ?# y) m: X: O
2.2.3 查询改写的属性20
$ [, f; N! P) J2.3 二次评分21% e3 C% t- j k4 L% c" t9 r% R
2.3.1 理解二次评分21: B$ G2 L2 j2 J, s# N' ]
2.3.2 范例数据21
3 \, a( c3 V9 Z2 c7 y& h2.3.3 查询228 x, h6 {0 S2 J& Z4 F
2.3.4 二次评分查询的结构22 F2 O* x1 K+ S. ^1 Z7 I5 d
2.3.5 二次评分参数配置23
; W: J ^% D2 o3 D2 b# F& t9 S# N# ~2.3.6 小结24
; N- q' w9 S5 O3 A+ V2.4 批量操作24 l& J/ l9 u4 H* |
2.4.1 批量取24
. Q# O, ]4 w0 H6 P6 \. t2.4.2 批量查询26
1 h! f9 {! |- [8 z6 s. J2.5 排序27
2 |$ ^8 r- f4 V( }# s% {2.5.1 基于多值字段的排序28. @$ S. m' X5 E
2.5.2 基于多值geo字段的排序285 p& R* ^6 A! W4 F, m' }
2.5.3 基于嵌套对象的排序30
1 r7 z" Q! U& q: ^: {+ c+ z, }2.6 数据更新API31/ e; ^: f0 h" C1 g
2.6.1 简单字段更新31: I8 X2 {+ l+ h& i
2.6.2 使用脚本按条件更新32
! W8 Q" B; w: r# Y2.6.3 使用更新 API创建或删除文档33$ Y: L0 g9 M# ~! G% C% u" r
2.7 使用过滤器优化查询33! E F a1 m. c0 j4 e3 ]5 ~1 h
2.7.1 过滤器与缓存34
. o) `# y$ H- Z0 A0 i+ m: j4 Q8 {5 {2.7.2 词项查找过滤器367 j* L3 M. F4 u9 ?: V. z t5 W' z, ^
2.8 ElasticSearch切面机制中的过滤器与作用域40
; Q& K. v) h7 z( G: O, k/ f4 P2.8.1 范例数据40: m6 W& i) s$ O0 C! |9 a% F
2.8.2 切面计算和过滤41: e: v( p3 ], {9 o. u
2.8.3 过滤器作为查询的一部分42
3 I- n- w4 [5 K o5 \0 d7 {2.8.4 切面过滤器44
2 t A9 [: p7 @& L; l" b2.8.5 全局作用域45: K4 F4 _! D- C' V! o
2.9 小结47
( A: Y% p8 Y5 P; |第3章 底层索引控制48
0 o4 v* n$ q* U9 _( `3.1 改变Apache Lucene的评分方式48
( _6 o/ @+ t4 m3.1.1 可用的相似度模型49
8 C# P1 T: |3 p( n5 z3 F3.1.2 为每字段配置相似度模型495 g& H& b1 I% j* z: ]$ ^- t
3.2 相似度模型配置500 d6 N8 d5 ?5 H7 l& t9 P
3.2.1 选择默认的相似度模型51" j+ N4 J( z2 i! V3 b" R& t. q$ M3 ~
3.2.2 配置被选用的相似度模型52
X6 Q2 {& ~( L) {( s3.3 使用编解码器53# [& Z9 H; r5 Y( G I' _8 q
3.3.1 简单使用范例53
& `; V; Q! o- n$ Y9 I- |! e. I) v8 u3.3.2 工作原理解释54
; Y5 k" V9 E% L3.3.3 可用的倒排表格式55
/ X) i5 [" d; w# c1 j3.3.4 配置编解码器56
5 n/ Y# ]4 X, j2 U6 i& }3.4 准实时、提交、更新及事务日志58$ ?% N, o3 {. S; R P
3.4.1 索引更新及更新提交59: f: ~, J9 ^" E X# ]
3.4.2 事务日志60
/ _) w! H$ G1 r5 `" K/ P+ e4 y3 W3.4.3 准实时读取62# f! K" T7 e! X/ U+ J) K2 F
3.5 深入理解数据处理62
5 j( n) t+ }! h @7 h4 D3.5.1 输入并不总是进行文本分析62
( V: V) V$ N6 A3 @2 c! n3.5.2 范例的使用65
$ ]9 [ D9 U6 E8 }3.5.3 索引期更换分词器671 C, A/ x5 P' i0 e5 W7 ~7 V6 @) f
3.5.4 搜索时更换分析器687 a& k0 P; }- }* `
3.5.5 陷阱与默认分析68, Y. O2 w; V" t/ {& P; Z
3.6 控制索引合并689 o6 m# R$ o% W3 L! F' N2 T
3.6.1 选择正确的合并策略69) A/ v, b- m, X! T4 R
3.6.2 合并策略配置70
7 ?- s- L, B1 B1 d; k$ d' m3.6.3 调度72
- G0 w/ H; N' W2 {7 O- s3.7 小结73; m3 `0 O- S6 r) X4 g
第4章 分布式索引架构74/ W0 b& {$ Y' t3 g! }" w* A: g8 i
4.1 选择合适的分片和副本数74
( _& G: v* j9 B) ?4.1.1 分片和过度分配75% H2 Q( V( K' x! H/ T4 z
4.1.2 一个过度分配的正面例子75
( j s2 M+ o; A S8 Q. c8 \4.1.3 多分片与多索引76& m' N/ L4 d( h6 `
4.1.4 副本76
0 W) f( m# P( N0 y4.2 路由762 J+ J, h6 o9 {; D ], s
4.2.1 分片和数据77% {$ B$ g2 q1 Y2 q: g1 \
4.2.2 测试路由功能77( c" k, e: x& n2 g% \0 M
4.2.3 索引时使用路由808 O2 g% S+ p7 C$ F
4.2.4 别名83
5 l; Q1 o& t: l' N% A) w4.2.5 多个路由值83
/ u1 t! b; b2 G. v4.3 调整默认的分片分配行为84. Y2 d# U5 Q1 I+ n) \/ {/ v
4.3.1 分片分配器简介84' b& X4 m4 A, k1 F, n
4.3.2 even_shard 分片分配器842 _/ e& ^: F. `4 j' n0 H8 h
4.3.3 balanced分片分配器85
0 y5 X. S+ ^4 Q4.3.4 自定义分片分配器85
, w8 H; U! o \' C3 K. Z3 j3 ^4.3.5 裁决者86
' X4 ^+ V0 L/ P( U5 g; U" |4.4 调整分片分配88
/ F$ x. J) }$ k, e" {; R/ y" d4.4.1 部署意识897 |* e0 p# O- E4 }2 I; V# c7 W
4.4.2 过滤91+ L. v; L) E* m, m6 }
4.4.3 运行时更新分配策略92
* V4 b3 [; }) a3 X4 n7 m* e0 A4.4.4 确定每个节点允许的总分片数93
$ V+ N! b# v* m3 O9 T0 x5 @# j3 A5 F4.4.5 更多的分片分配属性96
0 J% q1 g' L$ B; T7 q ^4 r$ R4 d! h4.5 查询执行偏好974 l6 Z; `# p% @% L R) X6 R
4.6 应用我们的知识99
. r1 O: e, X+ L4.6.1 基本假定99. M/ j" \9 R4 N7 G( l$ y. } ^
4.6.2 配置100
3 `# C8 m1 p4 e. ]8 j8 }3 U0 H4.6.3 变化来了104
2 T( `( t& q6 p3 t4.7 小结105
: h- t+ w% x# X, {; z4 s$ @第5章 管理ElasticSearch106
' T r" E% h& \ Z: A3 ^% T5.1 选择正确的目录实现-存储模块106: w/ y4 P1 L3 M k
5.2 发现模块的配置109+ P' K$ ]7 T7 y/ A9 T- L
5.2.1 Zen发现109
1 g8 Z K' v, }! Q7 B2 {0 ]9 l1 D ~5.2.2 亚马逊EC2发现1110 v* f& j! \, E0 _+ c# Z
5.2.3 本地网关114% m2 [0 s f* A$ n4 d1 c7 X$ V
5.2.4 恢复配置115& V2 _4 d, F8 x
5.3 索引段统计116
7 T2 z0 `9 l* n5.3.1 segments API简介116$ F0 s- u' H$ W: ~" ~% B. |
5.3.2 索引段信息的可视化1186 n7 t( [' Q: {1 [* M$ Q! l8 ]5 U: i
5.4 理解ElasticSearch缓存119
( N2 ?! k; P2 I; j7 i$ I! E5.4.1 过滤器缓存119
. U# o0 ^6 {( g q# Q/ W: `6 a- e5.4.2 字段数据缓存121( J8 N C( c+ P: Q/ p* L; m
5.4.3 清除缓存126
2 j+ k4 N& U& x/ i! z5.5 小结1271 t+ U* S! a! |# N# ~
第6章 故障处理1298 Y' ^, ?5 @ F5 f
6.1 了解垃圾回收器129: y( Y! J1 U/ n9 w( V
6.1.1 Java内存130" K+ d- z3 f. g, V- y! B) R
6.1.2 处理垃圾回收问题1315 U, P5 K- B o
6.1.3 在类UNIX系统中避免内存交换1350 [4 J7 y8 h4 g: i9 ^# D$ G
6.2 关于I/O调节136
( J6 |: v5 q6 u% L. i6.2.1 控制IO节流136
1 t7 ^1 X8 `5 r! v3 O$ f6.2.2 配置136 J$ o6 a7 M+ u8 `- {
6.3 用预热器提升查询速度138
- H! v' H' k. d! W$ e/ j% |6.3.1 为什么使用预热器138
$ t" \/ O, d: j0 G% o: f6.3.2 操作预热器138
9 P- Z' v. J8 ?1 l, P! G: Z; x6.3.3 测试预热器141, o9 K1 j _2 y) |$ e5 _- w) S
6.4 热点线程144: x8 j/ i! E! f/ ~5 k
6.4.1 澄清热点线程API的用法误区145
/ U% D# g* S* ]* G! b0 X1 K' o6.4.2 热点线程API的响应信息1456 }6 M1 r/ C- r, A
6.5 现实场景146
' G7 U9 N. ^- _, J1 V8 Q6.5.1 越来越差的性能146
+ d; U( K) s0 T8 V+ z6 B7 j6.5.2 混杂的环境和负载不平衡148
6 I6 g$ }7 z3 }9 B4 ^7 m6.5.3 我的服务器出故障了1499 C0 ~- m) ?1 v- b8 J2 m+ r0 P* Q
6.6 小结1503 }9 r' d# A* ?1 a; P1 i
第7章 改善用户搜索体验151$ Y' B, Q9 m9 j+ ?! O" k
7.1 改正用户拼写错误151
$ f3 \" i! m, ^' V! b$ |7.1.1 测试数据152
; l j1 ` n% m4 Y. c- t* K0 ]7.1.2 深入技术细节152
) z; y* m8 @, p% Z9 W7.1.3 completion suggester168
! R5 b. X/ V* W) i$ S0 n7.2 改善查询相关性172 k' c0 Y8 e! n4 K
7.2.1 数据172
0 ?4 J- }# S: |, }( ~5 ]1 y7.2.2 改善相关性的探索之旅174' v- V' d8 M$ X' g
7.3 小结1882 f$ P$ D4 q, w3 _
第8章 ElasticSearch Java API189
0 I) X; e& J- \ D8.1 ElasticSearch Java API简介1895 j: M. m! i- `0 D
8.2 代码190
/ t; r& ]3 `) Z! S4 |7 Z* M+ S8.3 连接到集群191
1 X4 a$ E7 H. {" {4 ?8.3.1 成为ElasticSearch节点191
- S! n I! Y$ u% F- C; A8.3.2 使用传输机连接方式1927 _* Z. V% A5 M
8.3.3 选择合适的连接方式193
6 n! ?# Z' L" s$ M5 U8.4 API剖析194
: U- ^' U! u2 k. `8.5 CRUD操作1952 ^" u/ f9 Y( t( v( R+ ~
8.5.1 读取文档195
( `# e5 W+ {- P3 V' q8.5.2 索引文档197
) K4 U1 S" K4 j9 O; u7 J1 E8.5.3 更新文档199
& s) E6 i- q' R6 K3 A2 n9 E8 ?8.5.4 删除文档201: Y$ g9 N- @. k4 Y8 W4 z( S5 R+ v
8.6 ElasticSearch查询203
# z% H* @! p8 h8 x! D* U8.6.1 准备查询请求203
: g8 r: n0 l; J8 }8.6.2 构造查询203
* a$ p: s# n* T$ a+ i8.6.3 分页206
" D7 U+ r, E0 |8.6.4 排序207( a) C2 a$ t2 R$ x( Q* t$ f8 t
8.6.5 过滤2071 M2 g1 n8 {, M9 g2 q: @4 _8 s
8.6.6 切面计算208
' u; b7 N# {7 g8 h4 g8.6.7 高亮209' j1 `0 A P/ }; o9 ~* Z
8.6.8 查询建议2098 N- J( `9 X" \9 _$ Q+ h! P
8.6.9 计数210
% ^' C6 F! p: _( |% _8.6.10 滚动211
& v" D) }9 j* U7 m( i# K9 i! J8.7 批量执行多个操作211
W6 G5 Y% @* y, I8.7.1 批量操作2115 ]+ @4 t2 c3 b3 R( R
8.7.2 根据查询删除文档212- B: @; N6 L: @( q( F
8.7.3 Multi GET2124 e. {" e0 c! p/ g, E
8.7.4 Multi Search212
2 v& A( G* a1 e5 b6 G W3 _8.8 Percolator213
" H# D! w+ ^, H4 N: J, R2 B4 K8.9 explain API214
5 j7 b1 y5 T( |( X4 d8.10 构造JSON格式的查询和文档2145 Q, P$ }! @( X4 x
8.11 管理API216! a+ g5 \9 @; K7 x7 V6 _7 e3 `1 m
8.11.1 集群管理API216; b0 \# A+ I' P2 [3 b Q3 p! g
8.11.2 索引管理API219
' P9 y; r( a, ?2 X& m# L, m8.12 小结226 r3 G4 {) X9 M' v0 Z+ b9 T G
第9章 开发ElasticSearch插件227
( w4 I" b0 U- ^* D9.1 建立Apache Maven项目结构227
0 [& l# s4 L1 q3 {8 u! t( C9.1.1 了解基本知识228+ Q' J/ n- z, I! K E9 y& \1 i
9.1.2 Maven Java项目的结构228. G! {! Y# A+ w- x. I+ s
9.1.3 POM的理念228* D3 I) T. y. l6 N) Z
9.1.4 运行构建过程229
& t% \- w& f" A0 V/ w# R$ D9.1.5 引入Maven装配插件230( p% P; z* d2 e$ e" z' V
9.2 创建一个自定义river插件232
Z) O3 p/ f+ D$ N& n9.2.1 实现细节232- s2 r- D0 U* c9 F
9.2.2 测试river238( d# n C, N) x8 d
9.3 创建自定义分析插件240
5 ^5 D: A6 F1 v. M) p( H9.3.1 实现细节240
) G; e! x- z! O9.3.2 测试自定义分析插件247
% p( r1 `! o3 B8 U+ t# E/ {9.4 小结2490 U( i) p7 \9 N
; w- g: Q% I7 J. b* H, |! m" q1 }百度网盘下载地址链接(百度云)下载地址:java自学网(javazx.com)深入理解ElasticSearch PDF 高清 电子书 百度云.rar【密码回帖可见】! t( g. M C" u6 C; k. N
$ ~5 u! B/ l; R, @0 c+ K
9 B; ?) c4 n% Q1 y# {1 B9 n: v7 v8 D# r7 v* N8 K! {& u
" Z! e/ ]. r5 ], G2 t/ f, m
|
|