|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《深入理解ElasticSearch》4 O5 d2 V1 d& e N J, t1 L" W3 e4 @
java电子书推荐理由:介绍ApacheLucene的工作方式、ElasticSearch的基本概念、描述Lucene评分机制、如何进行查询重写,另外还介绍ElasticSearch的批处理API及如何使用过滤器来优化查询、介绍如何为具体应用选择正确的目录实现,同时阐述发现、网关、恢复模块及其配置方式,以及调优ElasticSearch的缓存机制。介绍JVM垃圾收集的工作原理、重要性以及如何调优,还介绍如何控制ElasticSearch的I/O操作数量和如何诊断ElasticSearch中的问题。9 C% X# Q! {' y
7 N0 q: y5 R, _作者:[美] 拉斐尔·酷奇; Y: x. X3 F6 y' R
出版社:机械工业出版社7 ^- f6 V1 g# m i3 p0 O3 H
出版时间:2016年01月 " V. b8 i$ q5 j; o
# |% V) k! m0 a# w: t
% }. b' `0 R( X& n* y% x! g5 v( l
' t% Q* G) S+ H4 e+ k. K* Pjava电子书目录:
0 h' G6 b# h6 l" {" {6 d第1章 ElasticSearch简介1( D4 f( S& H/ Q# s
1.1 Apache Lucene简介1" E- H4 ~3 k$ j+ _' U
1.1.1 熟悉Lucene28 { S2 [3 m2 f* k# W: z
1.1.2 Lucene的总体架构2
8 Y+ ~' @$ Y3 N7 U1.1.3 分析你的数据3
% T/ z T b Z+ \* @1.1.4 Lucene查询语言4
1 }( `8 O1 l2 t8 R% r$ u- v' m1.2 ElasticSearch简介6# G( X& M7 ~ @0 K& z
1.2.1 ElasticSearch的基本概念7
4 ^2 m) d% S9 B" v8 ]( w" H" o1.2.2 ElasticSearch架构背后的关键概念8; g G' |) q6 ?7 v" R( S
1.2.3 ElasticSearch的工作流程9
9 l( M s2 q9 K& w( c. R+ z1.3 小结13# r* ~8 x- j) v3 z% |( A" C& G
第2章 查询DSL进阶14& r/ i0 Z4 O5 }7 m' a" v0 K1 A0 V
2.1 Apache Lucene默认评分公式解释14
, v }( I0 _) @& S4 [- |$ m& h0 B: A2.1.1 何时文档被匹配上150 X! K) ?+ t9 _( z
2.1.2 TF/IDF评分公式15
: @: P9 g% W9 q/ F9 l4 g9 }3 z2.1.3 ElasticSearch如何看评分167 v, J& H: `+ O8 ?
2.2 查询改写17
# q. }' } C6 v- B2.2.1 前缀查询范例17
# _# D- O' ~2 M: l2 F1 P2.2.2 回顾Apache Lucene19
4 H4 _* R: J8 y* S) m2.2.3 查询改写的属性206 O' @/ s7 D4 B6 |& P% k$ }
2.3 二次评分21) G/ a" k4 R" x$ X& v
2.3.1 理解二次评分216 x. A) j( ]/ e& ]
2.3.2 范例数据21
+ @5 {" G% I) L3 H; E2.3.3 查询22) ~5 e7 d% {5 F; @+ j2 T# A
2.3.4 二次评分查询的结构22
& n- {& }! [, L$ Q6 v* a2 }2.3.5 二次评分参数配置236 y5 t, K6 P" I
2.3.6 小结24" g0 B( [' ]% [, {3 l" |
2.4 批量操作24! b6 T! H1 v$ k0 F' G
2.4.1 批量取247 `0 J4 d. Z+ K/ i
2.4.2 批量查询264 o& f3 `/ E# M
2.5 排序277 d3 n) X4 ~ e7 G9 z
2.5.1 基于多值字段的排序28
2 B+ r( g' @( S7 p4 _+ u O2.5.2 基于多值geo字段的排序28' R; Z! H5 n1 S1 @( \+ K: t) K
2.5.3 基于嵌套对象的排序30. ~5 a8 \7 y2 X4 q, E6 j
2.6 数据更新API31" X6 @! ?/ u# u$ q2 h% L0 A7 S
2.6.1 简单字段更新31! }# Q4 u% z' N( w5 d) j; e
2.6.2 使用脚本按条件更新32+ m4 {! t* {' @, L
2.6.3 使用更新 API创建或删除文档331 g: [# c: ~' j8 k) h, V
2.7 使用过滤器优化查询33' A5 G U- _' y: J- J& ?7 f" l) m
2.7.1 过滤器与缓存34
: s3 U# J% s1 w! S/ G6 x7 i& `8 O2.7.2 词项查找过滤器36* b/ n$ @0 F! X. |: G# K& i' _
2.8 ElasticSearch切面机制中的过滤器与作用域40
- z O! P) E. r/ t4 b2.8.1 范例数据40% G; f8 `' L9 k$ {: Q {9 z1 D
2.8.2 切面计算和过滤41
, g- T" O6 j5 E* c/ M8 o2.8.3 过滤器作为查询的一部分42% D$ \4 o: Y S h
2.8.4 切面过滤器44/ j0 f4 I7 b) Q7 g5 z: ~" {' f$ d# E
2.8.5 全局作用域45+ ^; }8 S) T) L& s* s9 K
2.9 小结47
! O# l0 e1 ~8 _. p" a! f第3章 底层索引控制48
& h# q; O3 q$ U4 `3.1 改变Apache Lucene的评分方式48( Q7 p7 @' u( ?5 ~
3.1.1 可用的相似度模型49/ b( S; l. W& u* M" {) i8 w. t3 ~
3.1.2 为每字段配置相似度模型49
6 r' u, ^# g) I3.2 相似度模型配置50* z* h! n+ Y; o2 T
3.2.1 选择默认的相似度模型51
, w; d# l- k6 Q& Q8 d0 _3.2.2 配置被选用的相似度模型52
: r! ? M! p8 ?, c) n. E; e: t; _; j3.3 使用编解码器53
; \/ f) Z0 A. E, m* i8 Q3.3.1 简单使用范例53# e" V, l% G3 Z( a9 p
3.3.2 工作原理解释54
, g; t" L8 T7 q# v) U4 i* s3.3.3 可用的倒排表格式55# O1 m/ `7 E; @6 w2 D/ P) G6 ^
3.3.4 配置编解码器560 m( i" d$ a6 G) e& `% N2 W
3.4 准实时、提交、更新及事务日志581 j5 ~4 }- [, l$ K, X
3.4.1 索引更新及更新提交59: C7 B. n7 t: U T3 ~, s
3.4.2 事务日志60
! t2 Q; ~5 J. L2 Z3.4.3 准实时读取62
. q+ X5 u9 m- Z. d3.5 深入理解数据处理62
% g& E% ~, K# C2 N3 x3.5.1 输入并不总是进行文本分析62
/ d2 b! I% g' m% B P: s* S' z3.5.2 范例的使用65
- H; W+ N9 C1 K$ Z, P" s3.5.3 索引期更换分词器670 M7 C' {8 @4 S ]+ i: b
3.5.4 搜索时更换分析器68
4 r8 _" g! z: ?( n% G1 r3.5.5 陷阱与默认分析68- ]5 P7 \0 p8 w
3.6 控制索引合并688 q6 C" v {/ \
3.6.1 选择正确的合并策略694 b" c2 _$ k: S& L# M. B
3.6.2 合并策略配置70
" v$ K% J2 E& D% n/ v. ?8 t' C) B( `3.6.3 调度72
" _+ f9 t P- \. k4 y3.7 小结73
( {+ i/ b( v) l4 j2 O. n" V第4章 分布式索引架构74
9 C+ H- G; }1 l5 f8 e4.1 选择合适的分片和副本数74/ l ~/ e& D: n! ~' l
4.1.1 分片和过度分配75
5 E w8 K/ w5 [, s) t4.1.2 一个过度分配的正面例子75" z3 F2 L4 Z( _$ z. H
4.1.3 多分片与多索引768 n( y8 U( q5 f+ V; X, _
4.1.4 副本76
I5 U8 P! B' C1 F+ r4.2 路由76
: K$ g, x2 K4 D7 {" h0 _5 g& ]4.2.1 分片和数据771 O$ L* y5 B: k9 Z
4.2.2 测试路由功能77
+ U5 E- G8 M+ P6 W& P* A4.2.3 索引时使用路由80& e8 _" x% ]' R p( K
4.2.4 别名83
6 a% f1 @! j- O4.2.5 多个路由值83& i! X1 K, ]% [& N$ j
4.3 调整默认的分片分配行为84
% B. ^% Q# p" O7 I2 B+ W4.3.1 分片分配器简介84
& A; M. f p: W! L- R" I4.3.2 even_shard 分片分配器84
4 P0 G, S K! V+ b& u7 z4.3.3 balanced分片分配器85
* [0 c1 y# I0 ~" t; @0 `4.3.4 自定义分片分配器855 w1 _ S* e. l
4.3.5 裁决者86
+ r0 V' h8 c* x8 W8 b0 ~" g4.4 调整分片分配88
' A, O4 Z2 c& b8 |7 @4.4.1 部署意识89
/ }* B) n2 y+ c2 ~( _8 U1 j4.4.2 过滤91) @+ `( v, o; Y/ f) F
4.4.3 运行时更新分配策略92
' N- [, V5 `- `8 j4.4.4 确定每个节点允许的总分片数93
$ w* V2 A8 _* [7 g2 g, a4.4.5 更多的分片分配属性96
( H' c4 D$ T# x. n) g$ U V4.5 查询执行偏好97
2 t, g; ^% o( w4 g/ b4.6 应用我们的知识99
0 _0 w* y) O( x/ t# k4.6.1 基本假定99. ]6 k) M& j0 S
4.6.2 配置100) R$ U% K0 k K/ s5 c
4.6.3 变化来了104
( ]8 }/ z/ n. D: _- i) M u; l4.7 小结105% d1 I$ h9 A" a9 B2 B; \* s+ e
第5章 管理ElasticSearch106( W0 n8 Q2 j) k9 a% |! o. w
5.1 选择正确的目录实现-存储模块106
' [. E4 t' |9 |4 R5.2 发现模块的配置109/ }5 h) ~( A7 x) U7 ]8 N
5.2.1 Zen发现1098 K" S' ^) z n# ^6 y1 E1 H
5.2.2 亚马逊EC2发现1111 Y/ R, t3 _+ B
5.2.3 本地网关114% L& K) D# ]$ M9 E: v5 r$ u( Z
5.2.4 恢复配置115
0 Z" R" g9 b! U) [3 f% B% ?5.3 索引段统计116& Z" t) R0 T1 H" z2 l6 ?0 @1 ^
5.3.1 segments API简介116
5 ^& }/ s" ?, N% Y, Y! S; t6 ~" l: r" T+ Y5.3.2 索引段信息的可视化118
1 J8 w! L3 l' S s: \5.4 理解ElasticSearch缓存1196 m5 C) p5 ~& S0 [3 D
5.4.1 过滤器缓存119
2 y( E" z& Y5 }( v& J7 V% q5.4.2 字段数据缓存1219 K. P6 ] H, w& w% K
5.4.3 清除缓存126
, _2 u% g$ Z1 t# x" g5.5 小结1279 Z7 _. |8 r8 L; u
第6章 故障处理129
( F s7 A, X! `: R2 C) t7 K1 G6.1 了解垃圾回收器129
. u7 ~5 F, C' ^3 G4 _6.1.1 Java内存130
) y+ U2 }& T9 u3 d( y3 W6.1.2 处理垃圾回收问题131
/ W% T! n% N. S: t7 J3 K6.1.3 在类UNIX系统中避免内存交换135
1 M5 m# |; k4 K- w6.2 关于I/O调节136* X9 M8 F7 P6 u6 p- U4 S! v7 f
6.2.1 控制IO节流136$ z% H& U6 H8 ^% M5 q
6.2.2 配置136
- M+ F2 f' m8 Z6.3 用预热器提升查询速度138
- c# K8 N: ~: P! q% k$ c0 Q9 B6.3.1 为什么使用预热器138+ K! K" |% q* @* ~" M
6.3.2 操作预热器138
) m0 r9 N! l+ i2 Y; T. E/ G, Q8 @6.3.3 测试预热器1410 Z |5 J2 Z9 U0 R# N/ [1 a
6.4 热点线程144
- Z% {! J' t: n* @. `& d) M7 l% E6.4.1 澄清热点线程API的用法误区145
: X# g0 U$ n$ h" q# l, Z6.4.2 热点线程API的响应信息145( f. b( r. F$ W
6.5 现实场景146* G+ Z [8 B4 s3 o9 W6 U+ }
6.5.1 越来越差的性能146
" H7 d+ e' i( q7 Y7 [! ^. ~0 g6.5.2 混杂的环境和负载不平衡148
. S2 P8 [2 o# H) M' \' P8 ?7 w' H+ z6.5.3 我的服务器出故障了149: f: ?1 T$ S7 x7 a) }" ?1 w
6.6 小结150
+ r4 C) w/ N7 X Q6 X+ u. h/ x$ D' n第7章 改善用户搜索体验151
( z; g, n" f) r# I7.1 改正用户拼写错误151
! o6 `$ p6 _; S B7.1.1 测试数据152! Q7 R9 E. |4 o: O
7.1.2 深入技术细节152
1 k0 ~' f) R- X8 u, F Z7.1.3 completion suggester168
# ]. v& @3 c8 S, V: a% V7.2 改善查询相关性172
# D+ K( O( j6 [) ^1 R8 n8 j7.2.1 数据172
+ C. m {6 \1 z7.2.2 改善相关性的探索之旅174
" Z# J! x9 I- r! N5 N7.3 小结188; i9 X; x+ r }* p5 T
第8章 ElasticSearch Java API189- ~7 G$ H; G0 C6 N
8.1 ElasticSearch Java API简介189
+ P; i1 N1 N% L- f; c' t3 u! @8.2 代码190) l6 _! X: M$ d0 R* h
8.3 连接到集群1913 {% A; C) z% j, |. N
8.3.1 成为ElasticSearch节点191" N+ F0 M! m5 A1 g5 l3 n* q3 Y3 y6 j
8.3.2 使用传输机连接方式192
, E! v+ P \) v0 C8.3.3 选择合适的连接方式193
\& a3 E0 k4 [" d8.4 API剖析1947 m5 ^7 W) O$ C7 p. g
8.5 CRUD操作195
( }6 u# O& U3 y8 u* _4 ~; l% O( ^8.5.1 读取文档195
: m7 z4 U; g2 A3 c6 C8.5.2 索引文档1971 M3 ?" Q. |, E3 P
8.5.3 更新文档1992 T* M5 ]% J: n, `' u; Z* w
8.5.4 删除文档201
3 k, O* b. S$ ^7 r8 }7 z8 Q8.6 ElasticSearch查询203
" B! Y. _/ Y) t; U8.6.1 准备查询请求2037 }4 i8 j0 x; o8 J
8.6.2 构造查询203
( u( W/ S$ s3 E- b0 g8.6.3 分页206
. [4 n: }- {9 f( K6 d8.6.4 排序207
' \3 \* h7 A( ]& F8.6.5 过滤207- K1 S# N5 |0 e) g( s
8.6.6 切面计算208) d5 P' K$ X" y2 U/ `$ d
8.6.7 高亮209
, K# y, X K, |2 q+ V& j0 `8.6.8 查询建议2097 |/ z5 G. d9 M! Q! e. a! `) @/ D
8.6.9 计数210
# k- r$ I6 n2 w( J: T* E8.6.10 滚动2116 e B* O) R v/ k% d- Q
8.7 批量执行多个操作211
) b2 G) {, ]" c0 _% N* c- g8.7.1 批量操作211& W/ a. r4 B! i9 R
8.7.2 根据查询删除文档212! z5 S' z1 q3 k
8.7.3 Multi GET212! ^6 g+ N( t' w% P* s
8.7.4 Multi Search212
& e2 G* W! f6 a& T+ ], h' I _8.8 Percolator213
* b; D. r/ Q0 ]3 x7 f8.9 explain API214. I X: W7 \7 W6 @2 i* v7 p0 `- s
8.10 构造JSON格式的查询和文档214
# `' U5 M$ q/ d( b$ N8.11 管理API216, l: ~- f; \( ~/ l/ g3 K
8.11.1 集群管理API216
! m- M9 f8 m) ?1 D( P8.11.2 索引管理API219
/ h9 A4 E( X$ f+ e) @3 x& w3 j( J1 z8.12 小结226
% ~/ s7 C- G# X# o% Y/ K) h( I第9章 开发ElasticSearch插件227, o8 ~) A0 _+ {, j8 G) H
9.1 建立Apache Maven项目结构227! c" {/ t# p5 w& h4 }: w" ^2 \
9.1.1 了解基本知识228
8 V9 W& {; A" d# }$ K# y1 r9.1.2 Maven Java项目的结构228
8 b x4 j! r) W8 _! k1 [ u9.1.3 POM的理念228- l- w1 i7 P+ T$ H0 s! X$ C
9.1.4 运行构建过程229
' T* [: [' x$ X0 W4 a! L4 k9.1.5 引入Maven装配插件2300 d6 p9 W+ B2 u: @
9.2 创建一个自定义river插件232
: d1 `) z6 R+ e8 y7 V* j: T9.2.1 实现细节232
6 m( Q( Z2 z. h0 a' o' k$ j* F) w9.2.2 测试river238, v- t8 U0 n5 E% {
9.3 创建自定义分析插件2407 {: | N# T# I
9.3.1 实现细节240
O$ Z; N1 N# ~! S. q A+ m9.3.2 测试自定义分析插件247
4 R' v- U4 M" y: g/ X" L9.4 小结249
! B. E* `: b! O4 Y; w
: Y4 V0 t* Y2 i2 H百度网盘下载地址链接(百度云)下载地址:java自学网(javazx.com)深入理解ElasticSearch PDF 高清 电子书 百度云.rar【密码回帖可见】( f# e+ H" i# Y8 Y+ M5 n- w8 o
B- x( _- K4 D* R" B3 Y
' ?& Q5 @, S) N1 n/ ?
( X5 d3 [% x/ N' k* O# f
& j+ _: T& C2 H: s+ J- T |
|