|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《深入理解ElasticSearch》: z8 P/ F2 O' H/ a0 _$ v1 `
java电子书推荐理由:介绍ApacheLucene的工作方式、ElasticSearch的基本概念、描述Lucene评分机制、如何进行查询重写,另外还介绍ElasticSearch的批处理API及如何使用过滤器来优化查询、介绍如何为具体应用选择正确的目录实现,同时阐述发现、网关、恢复模块及其配置方式,以及调优ElasticSearch的缓存机制。介绍JVM垃圾收集的工作原理、重要性以及如何调优,还介绍如何控制ElasticSearch的I/O操作数量和如何诊断ElasticSearch中的问题。
( s7 J A0 u2 \0 O, g
$ z( | N# p0 x; X" d" ^6 M9 w作者:[美] 拉斐尔·酷奇
' {5 b) |: g, t出版社:机械工业出版社
! n6 ?0 w+ H! V! f6 h: W2 v6 D出版时间:2016年01月 8 W5 k3 H8 G9 ?/ S# P/ ^" [8 J
! i7 \$ V' |7 M' D
8 f# [1 L5 h$ K8 h! I& G2 ?% g# ^7 O2 F9 M$ I6 X. U
java电子书目录:9 G7 S- p3 Q4 x& b }8 R) L
第1章 ElasticSearch简介17 ~4 V! ^1 p4 X {4 ^' s3 F- ~
1.1 Apache Lucene简介1
, ?( P% `7 g. H2 r: W# }( C1.1.1 熟悉Lucene2
) M/ E' S' W- W5 X3 e9 d4 p1.1.2 Lucene的总体架构2
$ D) e! g9 x3 w W& `0 l: |' G) c1.1.3 分析你的数据3
1 I) @3 t* D' T" F; n8 [1.1.4 Lucene查询语言4
9 t$ c) O/ I" o) X1.2 ElasticSearch简介6, {; q% b q! D4 v( S z; G) _
1.2.1 ElasticSearch的基本概念7
( ?6 `% c( ~7 S: j1.2.2 ElasticSearch架构背后的关键概念87 L' B. I6 f" s1 @
1.2.3 ElasticSearch的工作流程9
9 r: s- s% k7 u( v1.3 小结13
2 `) P" J# L# `+ z0 w: L第2章 查询DSL进阶14+ O4 C) c, V7 L2 L
2.1 Apache Lucene默认评分公式解释14
3 b2 H# n5 r1 B( q' W8 h2.1.1 何时文档被匹配上15
* n# V+ M3 I% q! a6 \* v% U2.1.2 TF/IDF评分公式15
$ V( t7 R9 S2 M g7 C6 U6 k: C! e2.1.3 ElasticSearch如何看评分16+ m* T! ?( v4 `( Q; {
2.2 查询改写17. w% v! k2 I3 j2 a1 m6 S" G
2.2.1 前缀查询范例17
4 G& _) l- w' ]2.2.2 回顾Apache Lucene19
& P" c& \+ Y0 m( e6 @2.2.3 查询改写的属性20
0 j$ q3 P5 q* v2.3 二次评分21
/ |2 c r' y6 k1 Z2.3.1 理解二次评分21- j% R* k6 i2 e: |$ n6 G
2.3.2 范例数据21' G% t" m8 R8 X
2.3.3 查询229 P, P! }6 }) C
2.3.4 二次评分查询的结构22
1 s* W5 t( u) C2.3.5 二次评分参数配置23
# ~! A3 h# r. H) h8 }5 @, U2.3.6 小结24
6 ~# p) `: P; S4 X' ?' F2.4 批量操作248 g6 J5 ^& X Q4 ^: r }; K& {0 `
2.4.1 批量取24% Z( u" ]' |1 {" u! z" I3 G/ p
2.4.2 批量查询26- r: Q/ w+ s7 F$ S! h1 K+ j8 D
2.5 排序27; E6 }. p4 p; f
2.5.1 基于多值字段的排序28* f6 E7 I) ?) u. _) F
2.5.2 基于多值geo字段的排序28' L7 j& k& n |3 C% q% H* n6 Y5 @
2.5.3 基于嵌套对象的排序30
: _3 J |; U2 M' G# U4 I' {" K2.6 数据更新API312 F# |$ |- W9 I/ e: a/ W
2.6.1 简单字段更新31
# ?# z7 ^7 e9 E6 ?2.6.2 使用脚本按条件更新32! o; B4 V' Q1 q" T8 {, \
2.6.3 使用更新 API创建或删除文档33
& q& c/ s+ F% L0 T2.7 使用过滤器优化查询33
8 O' S; _! F B, ^2.7.1 过滤器与缓存347 O& ?1 s/ H1 |: T0 |# Q- t
2.7.2 词项查找过滤器36' y* O! o% G* J+ F
2.8 ElasticSearch切面机制中的过滤器与作用域401 q3 [7 ?6 I* h/ L& G2 C
2.8.1 范例数据40; q x. Z: w& R( [( y# l$ B
2.8.2 切面计算和过滤41- C& X' P3 v4 i1 c+ s. q
2.8.3 过滤器作为查询的一部分42+ d3 b, B" D/ v; f% y+ A
2.8.4 切面过滤器445 T& {" p Q" z0 c1 C8 S
2.8.5 全局作用域45
0 s6 w/ C) t. ?+ _, F( L) w2.9 小结479 N. U9 b& O- E' |/ L
第3章 底层索引控制48- w2 U) K2 [( m' e
3.1 改变Apache Lucene的评分方式48
+ r, ?/ n' p: q% r3.1.1 可用的相似度模型49
6 C1 @) n9 v2 G. Y6 _3.1.2 为每字段配置相似度模型498 U$ Q) |( k( t/ K
3.2 相似度模型配置50' J4 ~& l# n! g4 u) |* W
3.2.1 选择默认的相似度模型51
) s+ A. I, A! `# U( A( v3.2.2 配置被选用的相似度模型52
" N* h) p7 j# l# F+ S: O& B3.3 使用编解码器53
# [! \+ u( A4 u$ J( t4 q3.3.1 简单使用范例537 ~8 M( @0 X4 A5 [8 }& m3 |" @
3.3.2 工作原理解释541 \' G0 f) l1 o: t* X" \" X5 R8 ^1 p
3.3.3 可用的倒排表格式558 M! J& r4 N% h) ?- K0 @* K$ o
3.3.4 配置编解码器56/ l8 V" A( Q5 l% l6 _
3.4 准实时、提交、更新及事务日志58
3 e/ m# ~; k% \; A8 m: y0 H3.4.1 索引更新及更新提交599 a9 Q/ H R+ L1 w8 @0 K S, U- J
3.4.2 事务日志603 {- [# C% B% X5 {
3.4.3 准实时读取622 E/ ]6 W! B" N/ M
3.5 深入理解数据处理62$ {4 }3 ^! k8 W, z3 W+ t
3.5.1 输入并不总是进行文本分析620 {% ~4 E1 b/ E# `# ]
3.5.2 范例的使用65
/ f# X2 k3 }( f6 n. Z$ g) S& H3.5.3 索引期更换分词器67
# x, k! O$ b5 i3.5.4 搜索时更换分析器68$ M. s7 O4 {/ T! e
3.5.5 陷阱与默认分析68
! u) E/ y$ g) v8 E7 E3.6 控制索引合并68
( I1 ^# ~6 h! \9 |9 {3.6.1 选择正确的合并策略690 i8 {4 ^6 w' g; c1 V7 j- M3 R
3.6.2 合并策略配置70
+ a& j5 y( m6 Q; r- [2 h3.6.3 调度724 p) H7 n# g+ j, e3 n) v1 m" n
3.7 小结73
9 O/ Z! |* V5 _& P+ ^& f第4章 分布式索引架构74
2 g7 c6 k+ x, |7 R" M4.1 选择合适的分片和副本数740 @0 d! |' K( p& U, w/ b. |
4.1.1 分片和过度分配75
; s6 I+ f! T+ i$ x4.1.2 一个过度分配的正面例子75
- T, Q9 h9 k) k6 Q0 Z4.1.3 多分片与多索引76 |8 p j# t5 M$ Q3 R3 _) _
4.1.4 副本76
u# F1 c8 p3 x; ]4.2 路由76
$ f1 C# O% H0 a6 r4.2.1 分片和数据77# P% `; n3 X1 g
4.2.2 测试路由功能77
1 B* \9 _; H/ H1 b- ~4.2.3 索引时使用路由803 u$ p! H' H% q% t
4.2.4 别名83$ [% }1 M( M L" S% R7 x/ ~3 R
4.2.5 多个路由值83
5 _3 J- p( X) |5 `+ f! d5 c4.3 调整默认的分片分配行为84
- ?; S2 b$ f. h+ d4.3.1 分片分配器简介84% o( f! G6 [& p7 ~* F2 x
4.3.2 even_shard 分片分配器84
' f) O: J9 L8 v9 L& M4.3.3 balanced分片分配器85+ P5 E5 m5 H2 J
4.3.4 自定义分片分配器85
) s5 F2 m R* k& {' z4.3.5 裁决者86
7 M( B& o# I& u5 T; v4.4 调整分片分配88) l9 a2 U1 O" y. L( k$ {3 x. s! Z. V3 l
4.4.1 部署意识89' p& ~# ]9 D+ S2 K) o
4.4.2 过滤91. l4 Q& t: l# G/ S v6 P
4.4.3 运行时更新分配策略92
J+ H1 ?$ q9 C6 P0 q& E4.4.4 确定每个节点允许的总分片数93
1 D8 n: g; ]& u4.4.5 更多的分片分配属性96+ P! ~; h0 T( B
4.5 查询执行偏好97
' @" u0 L- v- }4.6 应用我们的知识997 j4 V# r5 b0 i/ Q- ^
4.6.1 基本假定99 D. u) L; P B1 }% \ a! @
4.6.2 配置100
& B6 _! k' T, W% o7 A ]4.6.3 变化来了104
& e5 t1 d1 Q% T: |( d+ a4.7 小结105" b0 K+ q# i( {8 R4 |* k
第5章 管理ElasticSearch106& \8 y# O! h: ^3 j/ j& u
5.1 选择正确的目录实现-存储模块106
5 o. b; E- q5 |# @+ i5 y+ L5 ^5.2 发现模块的配置109
$ b' y7 t6 E' C/ G+ Q Q5.2.1 Zen发现1099 y4 x7 n: M$ S% n; p8 P2 j r4 r
5.2.2 亚马逊EC2发现111& p$ n# A& e' i- N7 V7 W
5.2.3 本地网关1147 |9 i4 h% j$ O! ?$ C6 P; ~3 t) ]
5.2.4 恢复配置115
$ T6 U9 R* x& r1 ~5.3 索引段统计116
5 b$ @* H1 j7 ]; j$ `7 j" t5 j5.3.1 segments API简介116
3 J7 f" p: R# K% T2 H5.3.2 索引段信息的可视化118
0 m$ q! q# A! z5 e: R- C, @8 E4 m5.4 理解ElasticSearch缓存119; [# {% t' }$ Y4 r7 V) }( j
5.4.1 过滤器缓存1195 U% G+ S; ~/ f( n
5.4.2 字段数据缓存121
- k* v& P7 R! A% c5.4.3 清除缓存1266 f6 K' a' E5 l' x2 k
5.5 小结127/ L7 F. w! [5 N. ]/ U0 s0 u9 L
第6章 故障处理129! y, g6 C* P$ [; X5 j$ ~9 i, r% B/ S
6.1 了解垃圾回收器129
! D' {2 V3 X2 D' X6.1.1 Java内存1306 u: n ?+ _/ C# n" k' R* q2 d- P. I
6.1.2 处理垃圾回收问题131
& y* S- X0 f% Q/ V; M( y6.1.3 在类UNIX系统中避免内存交换135
) V* s( K& G3 v) D, M, W6.2 关于I/O调节136. ~3 N$ A g0 c- O0 i" ~2 g0 x3 X
6.2.1 控制IO节流136
+ G! q0 h) i* ?2 v* |' k. w( G6.2.2 配置136
: v6 E' [& g: \! J) p6.3 用预热器提升查询速度138# X0 r; @# |; u3 e: Y
6.3.1 为什么使用预热器138
* P( P; d: k9 b" x, w+ o4 y6.3.2 操作预热器138
: W2 U! {* V5 S8 C! D$ }6.3.3 测试预热器1416 c, V2 F. c% d0 M: r8 D
6.4 热点线程144
' h/ v: x: m, B, h1 R6.4.1 澄清热点线程API的用法误区1456 U8 F/ P: @ R3 |
6.4.2 热点线程API的响应信息145* y0 t, M# B, ? I
6.5 现实场景1463 J2 Z1 d$ x9 D: Q* M% P3 q8 T
6.5.1 越来越差的性能146, m; p- T! G; D0 P/ i
6.5.2 混杂的环境和负载不平衡148$ h, f6 U& Q+ ?4 E4 \+ h
6.5.3 我的服务器出故障了149& x8 q6 H) o6 Y; S; C7 _
6.6 小结150
% W$ o4 [- a: m第7章 改善用户搜索体验151, F/ X! k- W6 s q' k5 d. ^* B, w
7.1 改正用户拼写错误151
" U0 C( {- A9 ?, s% A# b& [7.1.1 测试数据1529 }0 Y7 A6 I! i6 v8 _4 Z3 u3 I1 i
7.1.2 深入技术细节152! a+ b+ o q6 S$ |9 k9 M
7.1.3 completion suggester1687 j: \( z- \3 O3 p
7.2 改善查询相关性172( J( E6 R9 O0 p% Y2 ]" y/ |' }
7.2.1 数据172
4 g# ]: |! p0 ]+ }- j, H6 H- Y7.2.2 改善相关性的探索之旅174
; H8 o1 `+ l$ s- H( p1 f" q7.3 小结188& o! {/ O" E/ [. y, Q
第8章 ElasticSearch Java API189: m6 n" b7 x9 A0 h
8.1 ElasticSearch Java API简介189' Z% j1 W. e, j3 b+ Y# y- X4 Q9 s
8.2 代码190
1 ?* m6 L& j- S0 X, h* C$ g8 B. x B8.3 连接到集群191) E' X0 ~ [8 L' a% Y) j+ k( t" h( \
8.3.1 成为ElasticSearch节点191
& k! X" Q+ u' i8 M K2 `# l$ C8.3.2 使用传输机连接方式192) `7 K7 I" f3 T' Z8 l$ ], p$ v) l
8.3.3 选择合适的连接方式193- J9 D2 V9 I- W: O& p6 e& ~- r$ h
8.4 API剖析194
& y% W& j* k/ k; V) f$ p y/ E5 b8.5 CRUD操作195
' g4 J" g. P2 N+ ^4 c& |2 w! p8.5.1 读取文档195
2 V. F7 ]: r, j8.5.2 索引文档197/ w- ^' U# V/ R; U# Q2 E! | z
8.5.3 更新文档199
" H+ v5 H1 W' u2 N( ]/ @- u8.5.4 删除文档201! ]: W, E3 C$ F
8.6 ElasticSearch查询203
2 e) d: i+ Y9 X% c* s* E# Q8.6.1 准备查询请求203, ?- Z P5 x! C2 g3 \- u, ?
8.6.2 构造查询203
9 |. `8 o! r8 g+ h9 s% G- Z0 S; ~8.6.3 分页206! a& o. X2 T! J! [, V; z
8.6.4 排序207
4 ?) Z+ p/ e* i# \ |0 J& B8.6.5 过滤207
t* P5 [3 `6 l+ Z8.6.6 切面计算208
* X3 v( W4 ~" A1 w* f6 l8.6.7 高亮209
3 o" S: Z4 f* }# M6 ~% T8.6.8 查询建议209
% ?' Y% R! o" E' m8.6.9 计数210- w/ k* C! V9 w$ \3 p
8.6.10 滚动211
, q" }- x1 ]) ?) s8.7 批量执行多个操作2116 t% Y+ F4 i& V1 C8 i P! [- N: K
8.7.1 批量操作2119 o+ s0 i# k8 r! G. ?8 s' Y
8.7.2 根据查询删除文档2127 S8 U8 l7 Z6 N$ c ~+ ^
8.7.3 Multi GET2124 c% L, m7 ^+ G* p+ G7 W
8.7.4 Multi Search212; g6 Y' _. g$ U2 e6 b
8.8 Percolator213
6 V8 e& f6 Y" e( W( U8.9 explain API214
$ u' ~1 g' D9 i8.10 构造JSON格式的查询和文档214
( H8 D+ o" d9 \" [6 l8.11 管理API216
9 a8 @0 Y7 K+ o" Q) I; L8.11.1 集群管理API2168 S) X! g/ v: r: j
8.11.2 索引管理API219* D+ c% K2 L9 P0 p
8.12 小结2268 I( s; U! P9 k8 s
第9章 开发ElasticSearch插件227
/ n( h4 K6 q+ }% v7 l9.1 建立Apache Maven项目结构227+ c) F6 z7 P1 r/ I/ y
9.1.1 了解基本知识228
$ s& g4 L( A( E/ i0 e9.1.2 Maven Java项目的结构2284 @0 N9 p$ O" b5 B
9.1.3 POM的理念228$ ]' s" i/ O, G9 G7 i
9.1.4 运行构建过程229
0 N& ^% _! |9 Z9.1.5 引入Maven装配插件230
3 C: e$ ?# H+ {% W9.2 创建一个自定义river插件2322 k4 u H {# o* r e
9.2.1 实现细节232
3 K) K9 f. E: q$ Y* W9.2.2 测试river2386 o* [4 A8 E) w: Y
9.3 创建自定义分析插件240. P5 w1 U* L R. O% t$ L
9.3.1 实现细节240 r2 b" {- h' {4 n! }
9.3.2 测试自定义分析插件247& R0 B3 \- J8 a- X
9.4 小结249
/ K- |& {& j% Y4 a" H3 ?7 P4 {; m7 u$ w5 d7 X* L7 {5 a2 w
百度网盘下载地址链接(百度云)下载地址:java自学网(javazx.com)深入理解ElasticSearch PDF 高清 电子书 百度云.rar【密码回帖可见】) q% r; D# t0 ?7 z
( H0 W" S5 L" ~# p: u- a1 ]7 H1 r, G4 O* }2 k; T+ g2 }% M
3 w/ f; q8 n8 w
( J2 u+ |* v' |4 _ |
|