|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《深入理解ElasticSearch》! M8 R8 e5 @0 J2 P+ p. V
java电子书推荐理由:介绍ApacheLucene的工作方式、ElasticSearch的基本概念、描述Lucene评分机制、如何进行查询重写,另外还介绍ElasticSearch的批处理API及如何使用过滤器来优化查询、介绍如何为具体应用选择正确的目录实现,同时阐述发现、网关、恢复模块及其配置方式,以及调优ElasticSearch的缓存机制。介绍JVM垃圾收集的工作原理、重要性以及如何调优,还介绍如何控制ElasticSearch的I/O操作数量和如何诊断ElasticSearch中的问题。+ W; x% i- {# `5 q4 u/ \3 f9 O
9 `( n) o' r* z, p
作者:[美] 拉斐尔·酷奇
$ z3 {' ] f7 ^8 U3 R9 `出版社:机械工业出版社
0 O* {" F2 ]: _- W出版时间:2016年01月 7 }7 A, b3 O# S$ C* J0 p. G
; r0 x, Z2 Q2 \3 \2 ?
) t% u2 U" R- m5 ~1 q
3 W5 ]) f( }9 Q+ L- Qjava电子书目录:
4 f) W/ u; v" s第1章 ElasticSearch简介1
/ c* S- r. O# E* y* n8 k; C, z% j1.1 Apache Lucene简介18 b; T4 x/ l: K6 J
1.1.1 熟悉Lucene2! a1 U2 R# N6 v9 ?7 g+ G! U- r( E8 R
1.1.2 Lucene的总体架构2- }. P( g0 I3 n9 g ]
1.1.3 分析你的数据3' |! w, S5 x# k2 X# Z% ^- g
1.1.4 Lucene查询语言4. Q: r8 Z9 x' h) p
1.2 ElasticSearch简介6. h* o" ^4 n- r& O9 g4 \( U! V! x
1.2.1 ElasticSearch的基本概念7
% R* _+ U: l- U2 N- o1.2.2 ElasticSearch架构背后的关键概念8
* [) A: t6 W5 J9 n# b1.2.3 ElasticSearch的工作流程93 C) }* r6 _+ l4 D
1.3 小结13
, @) r! x& S+ n N# \第2章 查询DSL进阶14
. d+ N. e3 [8 w2 i0 h- Z2.1 Apache Lucene默认评分公式解释14
+ E6 S# B5 f j7 p2.1.1 何时文档被匹配上15" y$ J3 x% N! r( I( Z9 N8 N
2.1.2 TF/IDF评分公式15
: M* O$ {. v/ j8 Y2.1.3 ElasticSearch如何看评分162 o( D. d8 A( q ], X
2.2 查询改写17
% P; x0 C' {0 v1 ?5 t3 u" d& O! E- L2.2.1 前缀查询范例17* p( e& Q, f3 L0 i% G0 i
2.2.2 回顾Apache Lucene19
8 W4 E& V0 c/ A8 A# O5 d5 w2.2.3 查询改写的属性20
( V8 h( J) B0 L. a+ s2.3 二次评分21
& ]; w' u+ _) |" m8 x6 `2.3.1 理解二次评分21 l) g9 i7 t9 |
2.3.2 范例数据214 C/ j0 }+ l1 M4 u+ h3 C6 O& t. V
2.3.3 查询22
% Z" c$ W9 v9 }0 v6 R5 D( O2.3.4 二次评分查询的结构22
4 z l8 {: }/ g+ B1 W# |2.3.5 二次评分参数配置23
6 O! @' t- _: [; D1 V% w G2.3.6 小结241 g5 {6 J7 E# y- t3 B
2.4 批量操作24$ M% S8 B; t* v' y* S% p7 T6 [
2.4.1 批量取247 Q- M6 @; G7 N) X$ r$ ]
2.4.2 批量查询26
1 z u5 d, {) V6 [! v( `/ W2.5 排序27
|$ A$ x& z4 j& r$ [2.5.1 基于多值字段的排序28
: H4 l) @* `6 q+ _3 \' x2.5.2 基于多值geo字段的排序28
9 y! w) L& L& e6 j9 V; `4 ], U' t2.5.3 基于嵌套对象的排序308 r, v' n8 W! u3 t$ ^6 w
2.6 数据更新API31
; \) q- G5 W/ }7 W! C. q" V: ^2.6.1 简单字段更新310 P# Q) j) Y6 Y( u2 ?- Y4 @1 k
2.6.2 使用脚本按条件更新32& B$ g5 {- n! e% N9 X( [
2.6.3 使用更新 API创建或删除文档33
1 b, B* ]# s$ j+ a& S; ^2.7 使用过滤器优化查询33, }# K* }4 i2 a1 o( F( E
2.7.1 过滤器与缓存34
7 w1 t/ y/ o" C# J' D* h, ^: q2.7.2 词项查找过滤器36
}/ }0 N+ _- c* x4 Z5 o2.8 ElasticSearch切面机制中的过滤器与作用域406 j8 o( m+ I0 C
2.8.1 范例数据40# v/ I$ L9 j# l5 m: A% @9 C' S" R$ R9 m
2.8.2 切面计算和过滤416 y( N2 o1 @& E3 d7 x: [
2.8.3 过滤器作为查询的一部分42
6 W7 n. r5 D) t ^$ _" N/ ?2.8.4 切面过滤器44
' M% I, g6 O- X) p2.8.5 全局作用域45
4 Q; V# n! ?- A9 l$ D% B# O2.9 小结47
8 }9 I. H0 |3 b Y+ L第3章 底层索引控制48
/ e. N" o( [/ C+ f3 `3.1 改变Apache Lucene的评分方式48
7 q2 n4 S/ J- a. W P3.1.1 可用的相似度模型49' a1 o! z* s# W3 J
3.1.2 为每字段配置相似度模型49
- E6 u7 _5 R! C7 e% _6 v, ?) \ m3.2 相似度模型配置50
" x2 L7 H- m O' w/ w1 I6 j c8 S! p3.2.1 选择默认的相似度模型51
4 b5 f3 ^, Q) D" Q! }/ K5 a$ V- K3.2.2 配置被选用的相似度模型52
" b8 t8 W8 W; ^8 d- \' |6 O* J; s3.3 使用编解码器53
% N; b9 @( M1 @5 R3.3.1 简单使用范例53
2 g' S/ @$ b8 v. h4 X' L3.3.2 工作原理解释54+ v+ g, l) U6 F" S
3.3.3 可用的倒排表格式55
2 R/ ?# }3 i. y: i8 N% T3.3.4 配置编解码器56' }8 D" U* \- H, c
3.4 准实时、提交、更新及事务日志585 _% e0 W$ g3 @5 I, Z
3.4.1 索引更新及更新提交59' F4 X+ W9 Y a( F/ m( [' h7 B
3.4.2 事务日志60* Z' [" }, j+ {* Y0 C* p4 d
3.4.3 准实时读取62
; E% O0 G0 b+ n2 s9 H3.5 深入理解数据处理624 c- r- S& W- S! f/ a
3.5.1 输入并不总是进行文本分析62; K' N, M, `" m I" x, U; \" P' @( J; r
3.5.2 范例的使用65 F1 M! s1 s+ i5 m
3.5.3 索引期更换分词器67. g, n3 Y& [8 M" y3 |
3.5.4 搜索时更换分析器688 F) ]0 K* I# Z2 X2 ~
3.5.5 陷阱与默认分析68
1 l, Q& ^% j5 Y6 L3.6 控制索引合并68
& ?; N! C: K' |/ K/ q3.6.1 选择正确的合并策略69% `( {6 y& C9 ?/ q- x( A
3.6.2 合并策略配置701 M9 Z& _- U& s1 R
3.6.3 调度72, `3 J% y0 f8 ?: H/ g
3.7 小结73
/ ~' |) V) J& w第4章 分布式索引架构74
, A# ?& L6 l1 I t# o. g, y: s4.1 选择合适的分片和副本数74/ i- H( u4 e" S( A$ D* t
4.1.1 分片和过度分配75
6 W9 l6 o( J+ L+ T! F+ R# E4.1.2 一个过度分配的正面例子75' v" s& L7 c) F" o6 O- b! h* A6 j
4.1.3 多分片与多索引767 q; W- F! o1 {3 s4 ~
4.1.4 副本76 e. d0 N, D% b' i q
4.2 路由76
?/ |6 ^& D8 c3 ]( w0 t4.2.1 分片和数据77- R1 [- G" j6 g
4.2.2 测试路由功能778 j- q& }* I6 Z( I, \6 \
4.2.3 索引时使用路由80
7 B J+ D) d7 k( i( U1 `% q4.2.4 别名83
' p% h" N' r, O4.2.5 多个路由值83
# C4 e. q5 I( ^& C+ P& Y4.3 调整默认的分片分配行为840 {* b4 {8 ^; Q# S2 r) @# \
4.3.1 分片分配器简介84
7 [! P: I, x3 R4.3.2 even_shard 分片分配器84
0 T" V) Q C2 }4.3.3 balanced分片分配器85: O, G& M. T& e# f& z
4.3.4 自定义分片分配器85( ~6 U$ |" X3 j& [( q! t# ~
4.3.5 裁决者864 s* ], `8 Z/ K, |9 c- U2 b
4.4 调整分片分配88
3 [/ Z1 e1 k8 }: V* M8 I4.4.1 部署意识89! r- w; f ?1 {7 m; D
4.4.2 过滤912 |- X+ ? u+ e m& g3 B
4.4.3 运行时更新分配策略92. l8 P- m1 j: Z: ^8 v p) Z; S8 S
4.4.4 确定每个节点允许的总分片数933 ]& u3 ^8 c' W
4.4.5 更多的分片分配属性96
* D3 A' y3 I& Q+ d7 O4.5 查询执行偏好979 K- a z7 R7 k+ U8 j
4.6 应用我们的知识99
- [; d% `' W( M9 z$ l4.6.1 基本假定993 f% n: A, o8 t0 J
4.6.2 配置100) y+ q5 d( n" o
4.6.3 变化来了104
9 _( P5 ~9 v1 R6 j% y0 k) w4.7 小结105
4 c5 q6 n: m2 d7 B第5章 管理ElasticSearch106$ d8 ~& i0 h' S
5.1 选择正确的目录实现-存储模块106
_9 w% s0 w, r) C/ V& t3 c5.2 发现模块的配置1091 m+ _: \# I6 }9 E2 u5 J
5.2.1 Zen发现109
4 G: v _; O7 ]* O5.2.2 亚马逊EC2发现111
j N2 c W* g, Z& |1 \) i5.2.3 本地网关114
4 E+ C, h; G3 H7 r+ r+ L. h5.2.4 恢复配置115
+ W5 l6 a6 w* e% U. V5.3 索引段统计116
% |" V8 B4 X/ c. j5.3.1 segments API简介116
9 [& `" d+ S6 t* `: g5.3.2 索引段信息的可视化118# |$ W, f0 J! D
5.4 理解ElasticSearch缓存119
/ V2 [6 j: N+ N3 A- Q1 H' L7 U( a5.4.1 过滤器缓存119& T9 g0 q3 }: k8 l% h
5.4.2 字段数据缓存1214 Z }; s; n: N- d# @; E+ O: y
5.4.3 清除缓存126. A9 U, @% B" y2 N) l* J) e
5.5 小结1273 _+ F% x4 m$ C" \ f4 ]8 f
第6章 故障处理129- {2 {& b( }9 M% {) S
6.1 了解垃圾回收器129
0 B( J0 q" r2 m" {" D( m6.1.1 Java内存130( O# }( D" D( K! L
6.1.2 处理垃圾回收问题1318 j j2 T; Z2 P
6.1.3 在类UNIX系统中避免内存交换1352 K# Q# t+ h3 ^
6.2 关于I/O调节136
. o( V. D1 [/ }" L4 q9 w: @6.2.1 控制IO节流136
1 z* i0 i" Z; }! z6.2.2 配置136/ p0 n) J3 M$ C
6.3 用预热器提升查询速度1381 g2 c" _! b, j, h- u1 s9 p0 c
6.3.1 为什么使用预热器138$ A& I0 `5 Y0 ~& X2 `! ~. _
6.3.2 操作预热器1383 k n& P) H' U2 d' @
6.3.3 测试预热器141
* j, X. R8 u6 n, b1 M; e/ M6.4 热点线程144
6 @8 G5 p+ F+ b6.4.1 澄清热点线程API的用法误区145
+ A. D# \5 x! f2 I! Y$ h6.4.2 热点线程API的响应信息145! C0 Z1 c6 T* Z
6.5 现实场景146
" e7 r% h) i2 f8 _, ~+ v6.5.1 越来越差的性能146
# ^) i+ j! x1 s. x4 Z% @0 Q6.5.2 混杂的环境和负载不平衡148* P0 }! Z0 x) C
6.5.3 我的服务器出故障了149- J; s4 K6 `& n6 c- X6 S5 s
6.6 小结150
) y# W* v; x( u g7 V! ~第7章 改善用户搜索体验1515 p1 X+ j- f) k: [" z
7.1 改正用户拼写错误151/ `1 u* ]. F" V! q0 G0 j
7.1.1 测试数据152$ k7 z5 w- i9 q1 f' X. q# H0 L, f5 q, M
7.1.2 深入技术细节152
- l& Z* A/ _6 i; a' ?8 u, S" _* x7.1.3 completion suggester168
7 d! X0 V9 u# n* ?- @* S7.2 改善查询相关性172
: d6 i1 E$ A9 \7.2.1 数据172" B( o n' q! o7 B4 D# M3 a
7.2.2 改善相关性的探索之旅174
- B7 ]( n4 ^5 j' h4 a+ o( g7.3 小结188
1 `4 N0 ^& D; ~5 F0 O6 S* }第8章 ElasticSearch Java API189$ J' t! `) g# d8 t C4 k" y, f; a
8.1 ElasticSearch Java API简介189
% \8 g- @1 D, j/ |0 n0 J9 \8.2 代码1903 W9 r; [ Q! e# k
8.3 连接到集群191
. s; X( o1 ]2 U" A8.3.1 成为ElasticSearch节点1910 }& \/ A8 V# c: m
8.3.2 使用传输机连接方式192
$ Q3 I9 Z2 }3 V/ J3 T6 ]( f8.3.3 选择合适的连接方式193; H3 _7 g* Y7 ]1 ]" l
8.4 API剖析1946 g6 V) g$ O- J
8.5 CRUD操作195) h. s2 M& M+ B) e- o
8.5.1 读取文档195
0 M, m8 m& ]: C+ M8.5.2 索引文档197
8 z, a j( Y; J& C. n' M5 m8.5.3 更新文档199- r" [: e' w. B- {$ E5 h6 f
8.5.4 删除文档201
$ R5 M6 @; B c4 {8 D/ i! Z8.6 ElasticSearch查询203
* i2 }# S) d! Q# O7 u1 i8.6.1 准备查询请求203
7 [: ^% @, n, ~! n8.6.2 构造查询203
- x5 u/ N6 d" u8.6.3 分页206" ^5 J/ \0 ~. P/ ?/ T; Y
8.6.4 排序207 E6 h- I9 F# N! G
8.6.5 过滤207; p2 b$ A) `8 i; S1 b
8.6.6 切面计算208
; _# N i v& }- N! E- Z* C8.6.7 高亮209# U; y2 L+ I% P' T x6 @3 r5 Q1 m
8.6.8 查询建议209
; S* A/ `; E3 ~2 w: N) Q8.6.9 计数210
8 u* y8 K, t5 }4 J8.6.10 滚动211
- o+ K, k' H7 H7 d: k( r8 g- G* U8.7 批量执行多个操作2114 f8 P- ~* h9 R% V" ~5 e
8.7.1 批量操作211
# g9 E7 z' _ a+ }# `3 C$ j3 t8.7.2 根据查询删除文档2122 L! Q* D" n# i0 H
8.7.3 Multi GET212
" M* H! X% I7 v. L% e2 `3 Y8.7.4 Multi Search212. V9 o3 S9 x6 ]/ W" d
8.8 Percolator213
+ r" m, Q6 |" C4 H8.9 explain API214
/ O/ K3 b \! I p4 ?8.10 构造JSON格式的查询和文档2140 v. _$ J, ^4 A7 _6 _- ?9 k2 Z5 z4 O
8.11 管理API2164 W# r" \ v i$ P
8.11.1 集群管理API216. U8 N/ p& b. F
8.11.2 索引管理API219
- h% U y" d- h' l. `8.12 小结226
4 o+ ~, z4 q% K8 g7 [* v第9章 开发ElasticSearch插件227
' V% j: ?7 ^8 g& A9.1 建立Apache Maven项目结构227
^ [ C V4 B3 l# ~9 _5 w9.1.1 了解基本知识228$ x8 l$ _+ h+ J& I1 U- f
9.1.2 Maven Java项目的结构228
0 a" q8 ]4 l9 _+ Y$ L. @9.1.3 POM的理念228, d& c y6 @7 y6 r) c5 m
9.1.4 运行构建过程229
- L! |1 p: t) m8 p/ D/ X9.1.5 引入Maven装配插件230/ \" h3 F6 A- d ? b/ O: g' c
9.2 创建一个自定义river插件232
2 @% Z* z4 D5 K: W9.2.1 实现细节232
$ q' u) [, r' n2 z7 {; x9 E! n9.2.2 测试river238
5 T" i$ V/ \! V- J) E& ?0 X9.3 创建自定义分析插件240$ s/ u0 i; N1 r5 {/ Q' \3 q- `
9.3.1 实现细节240
4 W, ^: T# `% Q5 t9.3.2 测试自定义分析插件2473 _ m9 Y0 t+ @- c6 R& d
9.4 小结249& y# D, W) ^! \ l
! C: U) Q' K/ i3 v1 E6 R) Z# O百度网盘下载地址链接(百度云)下载地址:java自学网(javazx.com)深入理解ElasticSearch PDF 高清 电子书 百度云.rar【密码回帖可见】0 _- h$ J+ ^4 E/ A- s9 p
/ T2 W9 Q4 W7 P# W
; J6 @4 j1 b- L, k5 Z6 G
% H% J f+ o J* I. E5 i
5 Q$ [, u% [ J% W& \" N |
|