|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《深入理解ElasticSearch》
; W. h6 X' _5 g, s Sjava电子书推荐理由:介绍ApacheLucene的工作方式、ElasticSearch的基本概念、描述Lucene评分机制、如何进行查询重写,另外还介绍ElasticSearch的批处理API及如何使用过滤器来优化查询、介绍如何为具体应用选择正确的目录实现,同时阐述发现、网关、恢复模块及其配置方式,以及调优ElasticSearch的缓存机制。介绍JVM垃圾收集的工作原理、重要性以及如何调优,还介绍如何控制ElasticSearch的I/O操作数量和如何诊断ElasticSearch中的问题。 x) @- A" c5 b% H
/ h# S7 x% }* t' [! b+ U
作者:[美] 拉斐尔·酷奇9 _* T2 k6 Y: f; u
出版社:机械工业出版社
, k- z) g! H1 _2 I- L# {" g出版时间:2016年01月 ; p$ E% m9 X5 @% z( j5 d! M
1 d8 h) t! Z8 C0 ^
7 _1 w/ @+ L) q& R7 A1 L5 C# U- n" M& g- I% [
java电子书目录:7 c1 @/ p3 z6 S" B
第1章 ElasticSearch简介1
4 d3 \1 n6 _# R, _7 P0 @9 |1.1 Apache Lucene简介1# H% ~2 e1 z* x8 ^8 r9 Z
1.1.1 熟悉Lucene2. c4 Z" `- L; p, j3 z, R
1.1.2 Lucene的总体架构2
/ w7 c# z7 t& s& P; K8 l E0 k1.1.3 分析你的数据35 \. Q, `) d/ ]% w W
1.1.4 Lucene查询语言43 D9 f& Y) y% ^6 q8 F* D! N e
1.2 ElasticSearch简介6. K1 x# p& F5 G9 Z9 ]; a0 e7 B
1.2.1 ElasticSearch的基本概念7" Y' M# \8 h: _, N+ E9 l5 v
1.2.2 ElasticSearch架构背后的关键概念85 q1 x$ n8 {7 g
1.2.3 ElasticSearch的工作流程96 _, {* | s; f2 e9 K2 A
1.3 小结13
2 k0 `' _ O7 d1 ]+ S# u; T第2章 查询DSL进阶14
% J# `& H6 F; T% }4 J0 n2.1 Apache Lucene默认评分公式解释142 K, p( S7 O# L4 s* R7 v
2.1.1 何时文档被匹配上15# w. h% v0 w7 ?4 {6 Y
2.1.2 TF/IDF评分公式15
6 u! s8 H$ x V. y# z2.1.3 ElasticSearch如何看评分16
) ?4 ^) I) z; E; J* h2.2 查询改写17$ y! ^+ ^, B' }2 g. H0 q
2.2.1 前缀查询范例17* ^ o! s' h! t& r& M4 U
2.2.2 回顾Apache Lucene19; ~- R& a/ ?! V1 Q$ h X
2.2.3 查询改写的属性20
1 J( X8 L- C% |# G2.3 二次评分21
: G% v3 o' }$ f( Y; \2.3.1 理解二次评分21+ P0 w9 q* _3 v8 ] [4 ~) p+ S( o+ B
2.3.2 范例数据21/ ~, u* K- H5 \6 }' c% T( l
2.3.3 查询22: q/ {$ n3 d+ y" h( W
2.3.4 二次评分查询的结构22/ j( d. P* j9 [
2.3.5 二次评分参数配置23
6 v/ a2 _6 A }2.3.6 小结24
+ `0 ]' ]; |5 O# w2 F" v, t2.4 批量操作24! _% l/ n' B* v5 v# V. {' m: W) E9 h
2.4.1 批量取24
+ Q a3 P1 q9 L+ I( i2.4.2 批量查询26" G) W8 V0 u5 T- B: k( n% e4 h
2.5 排序27( n5 }$ H! j' n! F8 h8 L- P
2.5.1 基于多值字段的排序28
: g6 E7 W$ m: F& y4 D3 ~: |2.5.2 基于多值geo字段的排序28 u" m* L+ ` o" {, ~
2.5.3 基于嵌套对象的排序30. p3 M9 j& ^% H {) K, o% Q/ A5 f
2.6 数据更新API31
( H1 }: }. t/ b0 ?( Q2.6.1 简单字段更新31
# a$ o! A9 c7 F4 Q# Y2.6.2 使用脚本按条件更新32
; ~& ?3 y! U6 h: r% d8 t2.6.3 使用更新 API创建或删除文档33
4 L. F+ R. a# F F' V2.7 使用过滤器优化查询33
& F* ?* u/ ~6 d! s2.7.1 过滤器与缓存34) p+ a: G; e$ N# f1 H, g3 z
2.7.2 词项查找过滤器36/ s, | q2 i. ]5 M( A: q& [8 [
2.8 ElasticSearch切面机制中的过滤器与作用域40, N- L ^% K* x0 D! V+ E- s
2.8.1 范例数据40
9 c/ s( u" |: |7 |5 M# G% F2.8.2 切面计算和过滤41: i! W+ G. m4 _( d
2.8.3 过滤器作为查询的一部分42, U3 ]) g: N0 s& V+ r. C
2.8.4 切面过滤器44
# a! {5 H" Y. i* W" |. Z2.8.5 全局作用域457 u" N$ |8 f) T" @1 W. X' o
2.9 小结47
/ K) m, y; j* e, i1 ?+ k第3章 底层索引控制48
+ |0 ]- q( s3 h3.1 改变Apache Lucene的评分方式486 q; |- k5 z- q0 P- Y" V
3.1.1 可用的相似度模型49/ w t7 g% O; t7 V+ R; [; y, T
3.1.2 为每字段配置相似度模型49
* C: f5 I) k5 p3 k: P3.2 相似度模型配置50
" `+ B# R" `- O' \( b4 A3.2.1 选择默认的相似度模型51: n* m) R+ T+ m/ x$ r# G" C3 F
3.2.2 配置被选用的相似度模型52" C* @6 h& v, _, o/ x
3.3 使用编解码器53
8 M# f' x* d) H7 g& `6 U3.3.1 简单使用范例53
& j1 ^* c$ M! L, q$ l- L: a$ E3.3.2 工作原理解释545 _( h- F U8 v- A: M* Q/ W
3.3.3 可用的倒排表格式55
% B3 Y! P# z6 L" Y8 U* k3.3.4 配置编解码器56. d2 S# w0 m& i
3.4 准实时、提交、更新及事务日志58
% g' N9 y& R. f7 h' \3.4.1 索引更新及更新提交59
$ I, e2 U/ A x; |/ P4 {7 q* i3.4.2 事务日志60
8 y2 }+ `) T% a- z5 `) e# o# V$ P$ a3.4.3 准实时读取625 e) q j' h) f9 r! K
3.5 深入理解数据处理62
( z* @' ~ O. |. r4 W8 B( S! l; q3.5.1 输入并不总是进行文本分析62
* \: q0 T) b3 H, h; U: X! S; W: r3.5.2 范例的使用65
$ p, n: C4 d0 g# Q3.5.3 索引期更换分词器67
& G% x E2 D0 j& y b3.5.4 搜索时更换分析器68
9 [# ?- o: w+ L+ k' Z3.5.5 陷阱与默认分析684 p* p5 m7 c# T1 M0 U
3.6 控制索引合并68
. I/ V1 t. b( d) ]6 q) y3.6.1 选择正确的合并策略69) x0 _- p4 G( _8 w+ r1 k
3.6.2 合并策略配置70
7 B5 y# z. [( G( `6 j5 [, e3.6.3 调度72
8 G% n. r L( M2 u7 o3.7 小结73
# }( M& T3 T4 {5 j6 k; a3 U5 R第4章 分布式索引架构74
* ~2 R. N2 ^8 e, |$ v4.1 选择合适的分片和副本数74
0 W8 o3 R, ^/ T6 G# T) Y4.1.1 分片和过度分配75
% w9 S. @6 e$ r# `2 h: ?4.1.2 一个过度分配的正面例子75 L# ^& N0 r/ |: F
4.1.3 多分片与多索引76
% P7 |& D! T2 x: ?. L4.1.4 副本76( M G$ I0 Y' J ^9 g, }5 f- h
4.2 路由76 H0 f* Z+ W% b# i
4.2.1 分片和数据77$ v# V& L' |9 r" l, v
4.2.2 测试路由功能77
& k; ^9 @& i* ]$ K4.2.3 索引时使用路由807 e8 i0 w0 Q) t) n
4.2.4 别名831 X) E% d& W5 s5 m& T/ N, E( T
4.2.5 多个路由值839 j6 r: N* H7 N5 B3 U6 V1 P
4.3 调整默认的分片分配行为84
3 f; N" u4 h! d! A; q N5 J$ \4 N4.3.1 分片分配器简介847 O5 o0 f- ?& M" W' P
4.3.2 even_shard 分片分配器84: g4 |7 L0 v0 p- w" i. x3 C$ T5 N
4.3.3 balanced分片分配器85
, K, C0 R S( Q4.3.4 自定义分片分配器85! n: ^0 _0 V7 z. f) M/ z* a
4.3.5 裁决者86
" n. \2 K2 @7 r9 B/ c, W4.4 调整分片分配88
7 M4 A/ A" J1 @% Q* b2 A4.4.1 部署意识89
, ^1 E) A9 E7 w) x) p9 E) q, I4.4.2 过滤91$ @9 F; K. T) z+ q& n- x
4.4.3 运行时更新分配策略92
3 y/ Z7 E# Q0 z5 q2 s( [4.4.4 确定每个节点允许的总分片数93/ R* @3 }4 c9 C1 ^/ z' o* y6 K8 f
4.4.5 更多的分片分配属性961 r6 O; `1 G F3 G: [- }+ Y
4.5 查询执行偏好979 H3 g3 F) l, d9 Q* @. \
4.6 应用我们的知识99& W# S: {3 y1 [- d" O
4.6.1 基本假定99
# K9 Q, `5 x, u7 \: m" l* F4.6.2 配置100
4 X+ C7 m' u/ [# i+ y2 |0 b9 _7 M4.6.3 变化来了104 m0 ?3 d7 D) M
4.7 小结105
5 Q6 q* K n( y7 E6 }0 T# h7 l第5章 管理ElasticSearch106
3 @1 _. k. k: i5.1 选择正确的目录实现-存储模块106
0 P9 U' L9 e% w1 L( L) c. u! T5.2 发现模块的配置1094 D4 t) G# v5 q6 a. X
5.2.1 Zen发现109
. K; r' M5 W0 ? l7 Z8 Q& t5.2.2 亚马逊EC2发现1119 s$ w' `$ f* e0 }
5.2.3 本地网关114- T9 g1 R1 @3 {5 n) h& @
5.2.4 恢复配置115) q) ]& y- T7 T3 E3 E2 a7 S0 h
5.3 索引段统计116
9 H9 q! a: ~1 V/ u- C$ K+ L5.3.1 segments API简介116
) ]4 J+ T" C: Q/ B7 ^5.3.2 索引段信息的可视化118
9 i+ N# t4 M& u( F5.4 理解ElasticSearch缓存119
. U$ Q0 L/ X m. b5.4.1 过滤器缓存119 e1 ^1 z' O0 H: W1 I5 f T
5.4.2 字段数据缓存121
$ F% Q8 [- q8 S- V3 W/ w. \5.4.3 清除缓存126
7 c4 n" T# H/ }) C5.5 小结1278 L. H/ K `4 u b6 O
第6章 故障处理1294 j, q. s0 a9 l( J( y: q1 g
6.1 了解垃圾回收器129; H& \& r; G: [3 `) }3 M- v1 Q
6.1.1 Java内存130- ]* Z$ ~: U, Q! O7 g0 M7 p* y1 s
6.1.2 处理垃圾回收问题131
2 M& V) J9 ~* {: Q) T6.1.3 在类UNIX系统中避免内存交换135* b' R/ j( {1 t2 b. k3 @
6.2 关于I/O调节136
. n+ h1 t$ H) N$ Y- L/ S/ ^1 o- w6.2.1 控制IO节流1360 w- x0 x0 Z( F: E+ n% W" v
6.2.2 配置1364 n$ P) S' n8 [
6.3 用预热器提升查询速度138
L2 A- @5 F7 m& h: z6.3.1 为什么使用预热器138
. s8 c# Q% H2 X8 D5 s6.3.2 操作预热器138
" d! q9 O5 U4 Z, m* B3 B, A6.3.3 测试预热器141
$ v- m: }; ?8 P- W8 N6.4 热点线程144
2 l# R8 M% m' H- w5 y6.4.1 澄清热点线程API的用法误区145
. `' G% p0 P$ O9 e& I6.4.2 热点线程API的响应信息145
& ]+ z q4 Z" ~; ~ S8 W6.5 现实场景146
' J: e( K4 {+ Z) G* b& X6.5.1 越来越差的性能1468 a1 {( a! H% w3 E: Z/ n3 t* h- L
6.5.2 混杂的环境和负载不平衡148' o' e: v: [3 i9 ?
6.5.3 我的服务器出故障了149
. V s% {5 C* {) L8 B. `6.6 小结150
8 G4 r; ]4 M6 d2 Y- u第7章 改善用户搜索体验1512 j4 ^ l/ N$ M5 T" h( }5 S
7.1 改正用户拼写错误151) p3 h, L7 c8 \2 l! L
7.1.1 测试数据152
) H: t' G; u1 y8 Q7.1.2 深入技术细节152 n( G) @* Q+ B4 g2 S
7.1.3 completion suggester168; y& w+ I6 G+ b( @2 G
7.2 改善查询相关性172/ t f! D: l a; [1 r+ d, N
7.2.1 数据172* S! }5 f" t. b5 A* v0 P% ]
7.2.2 改善相关性的探索之旅174
$ B+ q1 Z3 F! D5 t7.3 小结188
) {, l: d2 [% g第8章 ElasticSearch Java API1897 t/ d R1 Y: ~0 v8 A
8.1 ElasticSearch Java API简介189
0 H0 d$ i+ W) _2 |) g. X8.2 代码1905 n0 g9 r" l9 P6 L) Y9 R* [" }
8.3 连接到集群191
+ F5 F* B) g" Z7 y z1 x8.3.1 成为ElasticSearch节点191
( t4 G$ ^3 o# v3 d8.3.2 使用传输机连接方式192
0 s1 ]+ | Z/ D( y C# V8.3.3 选择合适的连接方式193& t" n, p: T. K# `5 u
8.4 API剖析194
7 i, s5 S/ }6 n/ i) Q9 d* k8.5 CRUD操作195- F" _+ @5 t; b; q4 i3 }6 f
8.5.1 读取文档195
6 N4 @$ k+ D2 s6 Y3 x3 N0 R8.5.2 索引文档1970 k8 `9 ]. w, v0 q7 E
8.5.3 更新文档199; J- [8 {9 z1 h
8.5.4 删除文档201
$ w- G: z0 z: p8.6 ElasticSearch查询203. {/ F, K5 n# e# o9 L1 V
8.6.1 准备查询请求203, E% N# U5 n; }, ^
8.6.2 构造查询203% f6 o: t' v8 C
8.6.3 分页206
+ P$ r3 w' i- n7 t( g8.6.4 排序2077 S6 n; u ?) h0 Q9 p2 Y
8.6.5 过滤207, {$ l# ~* I& B+ X
8.6.6 切面计算208
, D+ p6 }! C6 Z/ b" F$ B: K4 C* ~& R8.6.7 高亮2092 c, r7 A5 n7 u5 i
8.6.8 查询建议209: Q. a0 B6 e7 g
8.6.9 计数210
5 @ L4 @; c8 K8.6.10 滚动211) i. C6 G! `! M3 [( m& f
8.7 批量执行多个操作211
' ~6 E {! `. ~* N7 N8.7.1 批量操作211. ]; B/ ~: a" `+ l1 e+ y
8.7.2 根据查询删除文档212& \8 Z2 L! ]( s. ^+ F
8.7.3 Multi GET212
# C& c6 b3 P V; k- B! A8 K! g8.7.4 Multi Search2128 Q4 b3 ` V4 G' k
8.8 Percolator2134 H: M4 b( k# f* ~+ ]. g
8.9 explain API214 [1 o! ]/ d, y0 \9 c! ^
8.10 构造JSON格式的查询和文档214, V3 Y+ z: C, r
8.11 管理API216
& i/ l! m4 M/ ~2 I& m8.11.1 集群管理API216
9 V: o0 m9 Q& D7 W8.11.2 索引管理API219
- G; Z- R: s- W+ p9 R+ B8.12 小结226
, c. r. e9 w4 G5 r第9章 开发ElasticSearch插件227
7 _' d7 S- a, [. q% A) B* m9.1 建立Apache Maven项目结构227. k. `$ G- {$ Q7 [: }
9.1.1 了解基本知识228
$ L/ u' o1 U A# o" L4 t9.1.2 Maven Java项目的结构2280 \1 A+ p% w! X* b! r1 Y
9.1.3 POM的理念228
5 X; s- l; Q1 U* J/ f4 ^3 c9.1.4 运行构建过程229
$ Y$ i! A) P" e4 o" X0 R* D ^9.1.5 引入Maven装配插件230
. _2 G$ L; o2 ~7 e9.2 创建一个自定义river插件2322 j' `# c9 A9 y0 z/ M4 L* l+ N
9.2.1 实现细节232
7 U: L9 z7 \9 y8 Q! S8 X( a9.2.2 测试river2389 x' G* C8 p3 s+ c7 Z. s @
9.3 创建自定义分析插件240. c# o! D! \* g/ q
9.3.1 实现细节240 N5 O. i( @: d, A6 b) C! [. `; y
9.3.2 测试自定义分析插件247: M: M; L8 }" o
9.4 小结249
8 M) o- l! S* Q7 G u: Q- q
; q7 i' S2 d2 @: a" \! p# z8 c& Q, k百度网盘下载地址链接(百度云)下载地址:java自学网(javazx.com)深入理解ElasticSearch PDF 高清 电子书 百度云.rar【密码回帖可见】) o6 ^4 k7 J: f! r6 \
e% t# X: s# q: u7 F
! ^! U- p8 n' I3 w6 E" P+ y. B: O6 n. r" J2 c5 Z) i# ^
' g ]! t! u2 M8 m- B! G |
|