|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《深入理解ElasticSearch》# H8 \# C+ \' A: `
java电子书推荐理由:介绍ApacheLucene的工作方式、ElasticSearch的基本概念、描述Lucene评分机制、如何进行查询重写,另外还介绍ElasticSearch的批处理API及如何使用过滤器来优化查询、介绍如何为具体应用选择正确的目录实现,同时阐述发现、网关、恢复模块及其配置方式,以及调优ElasticSearch的缓存机制。介绍JVM垃圾收集的工作原理、重要性以及如何调优,还介绍如何控制ElasticSearch的I/O操作数量和如何诊断ElasticSearch中的问题。
5 I( B5 h1 S' Y1 B0 M/ Z) g, D! m8 p r
作者:[美] 拉斐尔·酷奇
. i- v, s6 J! X K# f出版社:机械工业出版社
, b m* ?1 |/ V出版时间:2016年01月
4 g: _/ _9 m3 y" x0 m1 }4 a% }
, ^4 q' _; G. p6 h# o; P' ^
' i6 C2 d- {; N+ }. D( bjava电子书目录:
4 Q) ~- m, q7 ?第1章 ElasticSearch简介1
. v/ _: k9 {& b1.1 Apache Lucene简介1
( ~2 A. P4 D; K1 J1 j1.1.1 熟悉Lucene2
* J. z) Y% T" Q1 }! \8 {, L1.1.2 Lucene的总体架构2. a, e* R% o8 L9 V3 F: L; {' ?
1.1.3 分析你的数据3( ~. K" T5 g+ L8 ?; R' e1 c- \
1.1.4 Lucene查询语言4: [0 Y- B& M$ I, y* s* q7 `& w
1.2 ElasticSearch简介6
9 T& T. @4 Z- p5 v/ y6 x* F! A( X1.2.1 ElasticSearch的基本概念7: {1 O9 F4 j4 ?
1.2.2 ElasticSearch架构背后的关键概念80 K# p5 V P6 l1 \! i
1.2.3 ElasticSearch的工作流程9& J9 K9 ]( e8 l- K4 l
1.3 小结13- g K' O9 U% Q( ]/ P* @
第2章 查询DSL进阶141 }& r1 J+ g5 H2 O S" U/ [9 u" u
2.1 Apache Lucene默认评分公式解释14
$ C1 J! K) x" O2.1.1 何时文档被匹配上15
5 x( d# f, D( Q" A, g2.1.2 TF/IDF评分公式15
, W- m+ P) o+ x( a2 Z! L5 I, W" j2.1.3 ElasticSearch如何看评分16, ]: R" B. I5 I( E ^3 i
2.2 查询改写179 f5 M* O* U. Q/ }3 H# l
2.2.1 前缀查询范例17
* {6 R' u; Y/ X" n- V- x2.2.2 回顾Apache Lucene19
X, [# e8 S, V$ W. O2.2.3 查询改写的属性20% O1 V' }1 u9 {6 J
2.3 二次评分21
$ P6 A6 e. Y! F2.3.1 理解二次评分21; O* l$ g: J. [, s! r& Z
2.3.2 范例数据21
5 q& ^+ a* V9 ~5 h, T& c9 C2.3.3 查询22
$ K3 X/ `1 C! r# |2.3.4 二次评分查询的结构22
0 j6 X& y" M+ p( f" r% m2.3.5 二次评分参数配置234 Q6 e' _, H! T, s& v, J
2.3.6 小结24
: E6 R4 z+ m/ D% J; q2.4 批量操作24
9 g* n5 j. @2 A/ G/ @$ r( X: ]2.4.1 批量取24+ \) x5 g; g( U& Y% i
2.4.2 批量查询26
4 k, C" X1 R7 j9 Z) C2.5 排序27. T6 q9 h0 j. i2 O! W$ n
2.5.1 基于多值字段的排序28* K% Y9 T/ f+ N2 A- `; g
2.5.2 基于多值geo字段的排序28) p* k+ ]$ g O" n4 |
2.5.3 基于嵌套对象的排序30
6 I a3 l: J: L3 E6 j# F! B2.6 数据更新API31& o- D9 ^8 {& l# c3 o, Q4 y
2.6.1 简单字段更新31! V; c# L6 {( n9 I
2.6.2 使用脚本按条件更新32
! p4 N) I3 `0 T# m5 s2.6.3 使用更新 API创建或删除文档33
; u( H, I8 n2 m3 g( b& Q$ B2.7 使用过滤器优化查询33; v$ g- S' G6 i9 @, M
2.7.1 过滤器与缓存34
* C6 j1 t" z- M5 ?' p2.7.2 词项查找过滤器36
$ N# [3 @( W4 j" q* S2.8 ElasticSearch切面机制中的过滤器与作用域40
0 \3 X$ e/ n8 [2 w3 {2.8.1 范例数据40
7 @5 g* [0 ^0 U6 A2 }2.8.2 切面计算和过滤41
8 ^ K* |4 K4 C4 w _& _2.8.3 过滤器作为查询的一部分429 ~5 s0 o- G& j6 Q$ N7 |' y
2.8.4 切面过滤器44( x; E7 T/ c- n
2.8.5 全局作用域45
8 z$ X% [% m# a& W: V/ g' C2.9 小结47) Q, n5 ]4 ~# x. s* L" Z
第3章 底层索引控制48
) M( I' I/ j+ X7 B3.1 改变Apache Lucene的评分方式48
3 G6 J8 u8 t, h, y3.1.1 可用的相似度模型495 c: |) E9 R5 v( N0 p" _- u
3.1.2 为每字段配置相似度模型49- s) p; ?) i! \
3.2 相似度模型配置509 z& }- S0 W6 u$ S* ^
3.2.1 选择默认的相似度模型51! H0 |* a d4 y2 O# O& ?5 u' m/ d5 m
3.2.2 配置被选用的相似度模型52
9 }* m& m% f: N# h6 c3.3 使用编解码器53& M. P. @2 b/ [% I" u. g
3.3.1 简单使用范例53
* \" u7 r$ `" X- Y* |3.3.2 工作原理解释54; j+ l7 K$ ]9 `0 |6 F2 [
3.3.3 可用的倒排表格式55! J% |# O% b9 h: ~" W% m" U
3.3.4 配置编解码器56
a7 H' f8 u, f7 H% [3.4 准实时、提交、更新及事务日志58
( @1 f5 n% g" C0 h: p7 R3.4.1 索引更新及更新提交599 G7 Y0 ]8 g/ w y3 U. S/ Y% t5 f
3.4.2 事务日志60
* N; C, l- f9 J5 m$ ]" t, W1 \3.4.3 准实时读取62
, j/ N# G4 [# [, q1 \3.5 深入理解数据处理62: v$ K. {5 H" Y1 r
3.5.1 输入并不总是进行文本分析62
7 s4 J( u( A D1 l' O2 J3.5.2 范例的使用65
. K7 T8 p7 Y9 r. C3.5.3 索引期更换分词器67
2 x4 T* V5 T+ L# l4 r- k3.5.4 搜索时更换分析器68
& x G3 `: E4 x& n8 ?3.5.5 陷阱与默认分析68* e$ V* k: \, T% N4 x3 C' P& \
3.6 控制索引合并68: o. Z9 g& _* k9 ~" M! k
3.6.1 选择正确的合并策略69& j6 Y" V# E: H. a
3.6.2 合并策略配置70 {7 X' D' s: i0 S1 }
3.6.3 调度726 u! ?, L$ \! k4 H( B, ]
3.7 小结73
) a6 `- f* t. h; g第4章 分布式索引架构74
9 @. k. w' S. Y3 N7 N4.1 选择合适的分片和副本数74
8 x1 b+ _, i; j* {4.1.1 分片和过度分配75
) |" g; C o7 K m% ]& y0 T1 _4.1.2 一个过度分配的正面例子75% _* i6 E8 C+ I" {5 W$ u0 }
4.1.3 多分片与多索引76
! l. x( m) A; _9 R" |4.1.4 副本76! S7 k; Q* T3 k) i3 o- y4 q" P
4.2 路由76; ?8 C8 C# _& G5 A p6 d/ [1 d
4.2.1 分片和数据774 j( y7 K" a0 h* a+ Z9 R' t! m
4.2.2 测试路由功能77
/ J! X5 Z6 ~9 i m7 z4.2.3 索引时使用路由80
& j2 v- } h; B* f( R+ q4.2.4 别名83
- J) I1 e/ p( E+ ^+ |$ ^' @4.2.5 多个路由值83. x ~ T3 w& b [
4.3 调整默认的分片分配行为840 c+ u9 @- y" y& ]6 H0 w, f; R
4.3.1 分片分配器简介84
6 c3 [3 }- s( Y) U4.3.2 even_shard 分片分配器84
' d2 R" r( R' d! Q4.3.3 balanced分片分配器85
: g9 b" ?* d2 p* `; Q$ [4.3.4 自定义分片分配器85
- K1 T+ F+ A2 g6 J4.3.5 裁决者86! [, s" i+ ?. N7 @
4.4 调整分片分配88
" k% K" C; h/ \! j& ~4.4.1 部署意识89# P7 N" T4 U) ~5 f9 q9 p
4.4.2 过滤91
$ Z2 E% `6 i8 E5 |9 h, G4.4.3 运行时更新分配策略92 G; h' a5 t/ k# R! r- w4 ]! o
4.4.4 确定每个节点允许的总分片数93
" x* L; b- G. M( w/ [. I" W4.4.5 更多的分片分配属性96
7 s* ]: N0 Z8 K& ~6 _, N2 {# K. S4.5 查询执行偏好97# \# R% f' q$ Y. F1 R
4.6 应用我们的知识99+ p$ P9 ^7 h# g' Z0 K" T8 C- x
4.6.1 基本假定99" ?3 c) J) T( j6 F7 y' x
4.6.2 配置100
. P" z% W J2 \/ f2 S7 P" E4.6.3 变化来了1044 f0 r+ Y4 Q0 U8 Y
4.7 小结105
6 D$ m% c9 `8 k& |" U" U, K第5章 管理ElasticSearch106
/ l) \- n+ R6 h9 i5.1 选择正确的目录实现-存储模块106
- ^9 J4 ~3 H3 w2 I8 o7 o5 j; M5.2 发现模块的配置109
) g/ ^) Q, V4 W+ V5.2.1 Zen发现109+ N* W% k: o$ W5 M. ^; F n0 d
5.2.2 亚马逊EC2发现111
2 B1 w7 y2 N$ j2 k# J* C) p3 Y5.2.3 本地网关114
- f: s1 H2 W1 e& V5.2.4 恢复配置115: p) }) R4 l0 K7 U
5.3 索引段统计116
9 y. I o9 j! X" B5.3.1 segments API简介116
) n. t N7 K- U D, q: g0 `1 D7 n5.3.2 索引段信息的可视化118
8 A' c: m% r N+ \/ ]) Z5.4 理解ElasticSearch缓存119
M _ Q- F0 L+ B H5.4.1 过滤器缓存119
4 O& l0 A c9 I4 a0 r5.4.2 字段数据缓存121
0 C V4 O- q! h' A/ N$ H' z/ Q5.4.3 清除缓存126
" @, h7 H q7 d9 r) U" \. ?) A5.5 小结1272 d' G: p# n. U+ U9 Q' _& w, `
第6章 故障处理129
" G% S- I- D* @/ Z2 |8 a( g1 J- a3 ]6.1 了解垃圾回收器129
$ {) z& g8 N; |6.1.1 Java内存130
$ R+ l* M& g0 C. Q; M# d9 x3 M6.1.2 处理垃圾回收问题131& v$ ~* Y- ], }2 V9 Y
6.1.3 在类UNIX系统中避免内存交换1351 L" C1 h- I: M% b
6.2 关于I/O调节136$ I3 Q& Q, b6 u& t# e
6.2.1 控制IO节流136" `8 M- u1 K* ~ N; E' V
6.2.2 配置136
' j) i$ `- q/ q1 y; ?6.3 用预热器提升查询速度138
- U4 F& F" T' ^3 f, T! n5 T6 |6.3.1 为什么使用预热器138
" D3 k& A. T0 S4 C6.3.2 操作预热器1385 e* v1 z3 U& P T4 a9 [
6.3.3 测试预热器1416 _" G+ J6 O# s+ ]
6.4 热点线程144+ r$ l o" ]" _: r+ O* }0 v6 o
6.4.1 澄清热点线程API的用法误区145
* |4 ~- _! g2 X0 G; K6.4.2 热点线程API的响应信息145
8 ?5 q [: ]9 Y3 \6.5 现实场景146
. R' b8 W, e6 E( g: T9 L6.5.1 越来越差的性能146
7 u* m' C7 X% w! X, Z: M" \/ g6.5.2 混杂的环境和负载不平衡1483 h, M. G! c, \) |
6.5.3 我的服务器出故障了1492 w5 ]: p* A1 K) ]. T
6.6 小结150 x! t9 u4 E6 z+ d( t
第7章 改善用户搜索体验151
9 P# @% h; y2 W( g% d7 r# ]: ]) @. c9 U7.1 改正用户拼写错误151
+ z& \( |$ p. Z4 c7.1.1 测试数据1524 R0 H5 k* B1 ~: e) s
7.1.2 深入技术细节152
g0 H" r4 i. |% X7 W7.1.3 completion suggester168! c; X% S4 a z$ ]. A2 Q- ~( N
7.2 改善查询相关性172. q; y* H! I* @
7.2.1 数据172
/ L2 ^ f8 ~2 J. ?+ W! b7.2.2 改善相关性的探索之旅174* `; ]& x8 K( j5 l/ @ P5 }- D
7.3 小结188& d" I4 L: i8 ^
第8章 ElasticSearch Java API189
8 p5 g5 f4 f- N! ^ _: M0 c8.1 ElasticSearch Java API简介189
2 A2 t2 E: d, x( {1 _8.2 代码1907 }1 \1 o( h4 \" g# b* q$ n
8.3 连接到集群191" K8 n) A/ t- }4 [0 p0 O
8.3.1 成为ElasticSearch节点1914 t7 \+ E" A! {* P m7 W+ ~! `
8.3.2 使用传输机连接方式1924 A0 z8 [! k* [3 y
8.3.3 选择合适的连接方式193$ D5 c9 C+ z. q9 s! M' }
8.4 API剖析1945 r& [( C3 @; N! _0 a" R
8.5 CRUD操作195$ H+ M5 N; Z8 h
8.5.1 读取文档195& k0 T2 S [* R4 I6 }, E$ G
8.5.2 索引文档197
7 ^+ K. v& V1 Y0 z: G# J% b0 _8.5.3 更新文档199" |' D( ?( _! ?. p, d3 t9 \, Z6 X
8.5.4 删除文档201& f4 g2 N9 h0 c5 v! z# x
8.6 ElasticSearch查询203
- c: p$ l M9 N5 _2 y8.6.1 准备查询请求203
4 v* d( H; p* ^8.6.2 构造查询203
( p8 @- ?+ ^. `# T8.6.3 分页206
[9 O3 f* k8 ^$ ~, C: T; e( L8.6.4 排序207 W) _/ G$ n3 c* V% Q0 D+ Y5 T, |
8.6.5 过滤207
; N% n8 U2 @& F( ?6 x7 _4 c8.6.6 切面计算208. L' H ~* n* _& m) D
8.6.7 高亮209
0 u7 O) h, M) Q0 X8.6.8 查询建议2090 c5 d4 w. {. ^
8.6.9 计数210
) I. w1 J( d8 S& ^8.6.10 滚动211
, I/ \. ]0 D, ~1 j" R8.7 批量执行多个操作211; V$ C( o. p: y4 d [
8.7.1 批量操作2117 f$ @0 U8 C0 ], J$ ?% D" B
8.7.2 根据查询删除文档212
$ s, g1 {8 I: ^6 N# l0 D8.7.3 Multi GET212! s9 D/ _9 M: o. E6 G3 h7 h, p
8.7.4 Multi Search212
9 }9 g2 p: z! ]0 |9 n, R% b8.8 Percolator213
& \) P4 t- r N6 C3 e T8.9 explain API214. ?0 g$ i! C" d& ?) q$ z
8.10 构造JSON格式的查询和文档214
4 g9 w5 G9 a2 I- ?8.11 管理API216
8 G1 X' k' t% F" e; x8.11.1 集群管理API216
- F$ E9 N1 S: N# Y8.11.2 索引管理API219/ _; ^5 @* F; x% f
8.12 小结226, a6 ?/ n" [" d9 M! M0 e
第9章 开发ElasticSearch插件227* H+ O4 R1 `/ x& k* L
9.1 建立Apache Maven项目结构227, b6 {6 H/ {3 r) K, ^
9.1.1 了解基本知识228
# \! K& r! [$ v4 C9 C9.1.2 Maven Java项目的结构228
8 Q$ \7 F8 s% W8 P0 U3 P9.1.3 POM的理念228
9 D7 a; I1 U/ z# n- b- r( D9.1.4 运行构建过程229
! I' N3 [* k# O2 Y2 s7 A9.1.5 引入Maven装配插件230, N0 H; i4 p# B9 P, ?5 Q
9.2 创建一个自定义river插件2323 h3 O5 m$ R; m
9.2.1 实现细节232% C7 J4 E0 o7 ?- M" W E( p
9.2.2 测试river238
4 d. D1 {7 S+ t! A" ?$ {9.3 创建自定义分析插件2408 K! H2 T. }# [& Z3 M0 O( H
9.3.1 实现细节240
; N5 Y t' i$ L9.3.2 测试自定义分析插件247
: J; K" E* Y* y. w6 D3 U4 `5 b9.4 小结2498 z) F" g, ]6 @+ r# I/ v; }! a% b
% ?) R A: L+ {/ {1 C* V* C6 W百度网盘下载地址链接(百度云)下载地址:java自学网(javazx.com)深入理解ElasticSearch PDF 高清 电子书 百度云.rar【密码回帖可见】% Z9 @- C1 _6 v d; G4 ~
* V* e1 x' ]2 N0 p* H* ?- m) X3 K: V s" n% U" m8 A' w
. f% ]( _2 g) O3 G- X
2 m& g3 b7 W+ v: q+ X- E/ f |
|