TA的每日心情 | 开心 8 小时前 |
---|
签到天数: 237 天 [LV.7]常住居民III
管理员
- 积分
- 8398
|
Java电子书:自制搜索引擎 PDF 电子书 Java吧 java8.com
! C+ O1 X% p2 x' K# k
- @' Q( o6 l& E5 W' I作者:山田浩之 末永匡出版社:人民邮电出版社出版时间:2016年01月+ Z' L$ l+ ~2 V3 @% i! ]/ c
' i8 L8 X; a! j: J9 L8 j: ]
编号:166-Java吧资源免费-X0112【Java吧 java8.com】& q4 d, C/ _- l( _3 K. F0 e+ M$ `
1 C/ _" W& {1 a& i0 `" i$ I* M# h: k: p# j0 W; @' R/ }1 d$ ~. E
0 P8 C$ r& H7 Q- V' E' j目录:
8 u$ _4 u9 s, x% c" ?1 O7 \第 1章 搜索引擎是如何工作的 1
% U% ~# d/ S2 ^7 F5 E1-1 理解搜索引擎的构成 3% |2 x+ ?# K0 t* s9 ^5 _! ~0 c* ~, S
什么是搜索引擎 3
h1 t- E$ r/ D' U构成搜索引擎的组件 4- d# ~' G& S: `
与搜索引擎相关的组件 5
/ T Q3 z9 p( I7 j" z# ]' e3 }1-2 实现了快速全文搜索的索引结构 7! k6 _$ |$ x7 P3 c
全文搜索的两种方法 7, x! O" s5 C' `0 W
倒排索引的结构 8
- \/ o# s) A9 b) l, l倒排索引的构建方法 9! N& _( d& k. D3 t( F
倒排索引中的术语 10
4 w) T h8 A# b* |% g/ ]7 S% t1-3 深入理解倒排索引 12
4 A7 ^# z Y- I9 _6 ~倒排索引=词典+倒排文件 12
9 K0 g4 |% g5 u. ^- j从倒排索引中查找单词 13
+ q* D5 Q+ [ b5 ^将单词的位置信息加入倒排文件中 13* O w6 U' K0 a, ~3 r% ]# X+ `
从倒排索引中查找短语 14
! g4 v' f( f9 W# l1-4 制作中文文档的倒排索引 164 c% t2 _/ L' ` @, B9 p+ k6 E
分割中文句子的方法 16
1 N% o8 n: k0 h' [) h/ @7 i6 I权衡分割方法 174 a- M+ u! ?/ L' z: A+ S. w
1-5 实现倒排索引 19
- ~; R% ]. U9 H4 C实现词典 19
2 i1 F1 `- x5 W# v0 m+ T; \2 X实现倒排文件 22
9 M8 w* E+ Z) ]1-6 使用倒排索引进行检索 24
4 q/ \! }8 X O布尔检索 24& S F* x; Z' s, |% E5 n1 J' b
使用倒排索引的检索处理流程 24# h% i$ i! |0 b, e7 r" A
关联度的计算方法 26
- y \9 x8 A9 D0 `, T( l, a; d, X' L信息检索中的检索 27
& D' J- R5 a2 p6 }, o( c3 O1-7 构建倒排索引 29+ S/ L4 T1 N4 n
使用内存构建倒排索引 29
6 Y" B' ~$ y) t" u7 N2 }使用二级存储构建倒排索引 299 _" a8 S X- b8 o. s
静态索引构建和动态索引构建 32
$ e4 L# F( E& F+ U3 l1-8 准备要检索的文档 343 Q2 C0 Y4 j/ @5 \; v) p2 C
收集数据 341 [4 o. h9 ]" G: `' Z( C
数据规范化 35' C9 q9 Q% ?. [0 ?4 Q- Z) C$ J
第 2章 准备全文搜索引擎的检索样本 37
- M: ~ w! |" e' x2-1 全文搜索引擎wiser 39
2 k2 t& Q# z, E1 a9 J8 `0 [wiser的构成 39, y0 q- b' U- m% w/ s
准备用于检索的文档 402 h5 F- ]6 `6 a! j: N9 c, [* S+ i
2-2 安装wiser 42; D% Z+ h( d3 h% t) _1 q
构建wiser 423 O0 W0 ~5 Y' f& U6 I
启动wiser 437 X* Z, ?# j- x: H% D7 G
解压缩Wikipedia的副本 44: }! U9 }$ d% P8 [
2-3 运行wiser 450 H9 ^' D4 p& M- D3 R2 Y
构建倒排索引 45
6 T& b8 o% o. p4 h6 L: O7 i$ u6 g使用倒排索引查询 46
" I+ T. d0 B; C B# }7 ?) b2 Y比较grep和wiser的运行速度 46
9 o" ^+ P" A" b' q第3章 构建倒排索引 49
+ i% r. {+ w% N/ s3-1 复习有关倒排索引的知识 51: U! k- z9 w5 z* }: P! r8 V0 N
提取词元 51. ~) h: D5 c5 h9 P4 s
为每个词元创建倒排列表 53
6 |( I1 z# h+ Q+ \3-2 构建倒排索引 543 y' ]" ?, J9 p+ f+ t
在存储器上创建倒排列表 54
( v+ \, i! z' x7 w6 i9 o' X& I$ A- |: a倒排列表和倒排文件的数据结构 545 D1 g" |! s/ R* \+ T
从源代码级别梳理倒排索引的构建顺序 56
4 p/ t; m% s% c. A进一步阅读源代码 59
; y3 |7 ~$ B. D' s专栏 根据实际情况设计搜索引擎(系统) 68
) [) W" u3 u! Z. _, k第4章 开始检索吧 71" B; w3 A$ I: A' M& n0 I7 J# K
4-1 检索处理的大致流程 73- }" U! E8 o; h& s0 l) u8 L% [
充分理解检索处理的流程 73- ~: |6 N2 Q2 X) P) d M1 U+ C
4-2 使用倒排索引进行检索 75! a" b" g9 j" F& g6 g
从源代码级别梳理检索处理的流程 75
9 \/ m3 c9 M, R/ p7 D解读split_query_to_tokens()函数的具体实现 765 C8 u% B' A R, g. w7 D/ ~+ g
使用具体示例加深对检索处理流程的理解 77
* `* u8 B# S4 y1 H2 q& H6 v! [解读函数search_docs()的实现细节 80" g U- |' Q- Y
解读函数search_phrase()的实现 842 O( b# f6 z5 ?6 y* I& g
专栏 如何实现标签检索 88# @0 v% [& z- n2 }' [
第5章 压缩倒排索引 89! k/ S1 x- }# O6 ~) D: L8 L8 Q
5-1 压缩的基础知识 908 v5 m3 c4 t! \6 i9 t$ [; @
压缩倒排索引的好处 900 M+ S; |! k- B
专栏 压缩的目的 904 s/ T# q7 M, [1 y' R s h. I
倒排索引的压缩方法 91( c* F( N# _" \" L2 e4 A
倒排文件的压缩方法 91, U+ E/ u* B) k: Q$ b6 `9 n
压缩的原理 94
7 b' h' P" e/ c. f3 _5-2 实现wiser中的压缩功能 97
5 [2 F1 f+ ~2 b/ Q压缩功能源代码的概要 97
" S& Q1 j3 B) E) L了解无需进行压缩时的操作 994 S" t4 w& R k/ Q
抓住Golomb编码的要点 101
, ]( W* G, }/ j+ H8 W- h解读Golomb编码中的编码处理 105# ?( `/ g& P6 Z6 x7 [- I
解读Golomb编码的解码处理 108; R: ^) p0 a' S, g6 B8 M
第6章 挑战wiser的优化及参数的调整 113
0 S0 ], _% h$ G6 j8 t. H6-1 提高检索处理的效率 115
2 r' d1 E. Z Y" D9 K优化检索处理 115
/ J- c: q! Z' Q1 _$ B将查询分割为无重复部分的词元序列 116
; t$ K6 b& o8 Y8 F/ K6-2 禁用短语检索 119
6 t( a% l; [1 ^1 J$ x- R7 h) `分析对2字符的字符串进行检索时的行为 119/ l c/ @* y; W$ @
分析对3字符的字符串进行检索时的行为 120$ C% K% `' D* r$ c7 `& Y! I% Q9 k. S
6-3 改变检索结果的输出顺序 122
* W5 ] B7 i2 n作为检索结果排序核心的指标 122% I: H: Z: y m) v. c3 q0 T( v
按照文档大小降序排列的检索结果 124+ c* g8 W, o" Y& J
专栏 排名欺诈 128
4 [# |" k2 o1 [7 I6 ~6-4 让1个字符的查询也能检索出结果 29' E3 ]3 U+ o5 \- D4 }3 |
获取以特定字符开头的词元的列表 129- U% [- g3 \0 z; c
合并检索到的结果 131
" R7 |5 }# T- R0 W3 ^专栏 如何实现相似文档的检索 131! ^7 B& F' t5 @* z3 E. {/ K6 v9 u
6-5 调整控制倒排索引更新的缓冲区容量 133; s2 ^* t+ Q! P
确认由缓冲区容量的差异带来的不同效果 1331 c }$ Q, X" h5 O
用sar命令分析负载 134
* n* ?. I7 m; X0 G+ t7 f/ ]6-6 调整只有英文字母的词元的分割方法 135
2 ^$ j' S$ q& d6 @ V如何避免用英文单词检索时准确率下降的问题 135
7 B7 i2 q7 l3 h" r如何判断某字符是否属于索引对象 135+ x; _! O4 \, l+ l0 ^3 u7 ~
修改负责分割词元的函数 136
5 w/ x* E5 W' e6-7 确认压缩的效果 138
3 {, i4 u% O0 ], U/ B. z& F) _观察Golomb编码的效果 138
# v8 m; K: ]* _5 i对比压缩启用前后的索引大小 138
* K$ o( G2 C2 L8 m, S/ s' ^! _# S专栏 避免滥用全文搜索引擎 139, }6 z+ b1 n7 _2 Y2 T
第7章 为今后更加深入的学习做准备 141" z4 f4 I2 u6 } v: E2 R
7-1 wiser没能实现的功能 143
( ]/ }$ c/ p: v倒排索引之外的全文搜索索引 143
" Q) ?! ?- I5 J) B高效处理大规模数据的存储器 143
5 z% o& U$ \+ o* Q5 I9 j利用缓存提高检索的速度 143
" J. \$ a s( G0 |使用各种各样的压缩方法 144
( K0 ^" Z" o- G7 `+ K4 ]优化搜索结果的排名 1443 _3 ^3 _ D3 S
调整准确率和召回率 145
5 t/ ^# ?# F- Q3 V降低检索结果排序处理的负载 147+ f1 T4 ]1 K" R( n5 g
并行处理 1475 Y6 r7 s- H% w/ d3 B T+ y
结合对属性的筛选过滤 148
+ P$ r% \6 {5 D9 ] m分面搜索 148
7 |, v8 U* _& d/ J, I专栏 时延和吞吐量 1499 F x. T! x2 A" g) I: p* Y0 r* t
7-2 全文搜索引擎Groonga的特点 1509 S: F7 W# j& v \4 ]8 t" ~4 B0 D
通过词元的部分一致检索提升召回率 150. P2 u, E/ b! ^9 \) u
使用内存映射文件 151
# Z7 k2 [" S: U片段 152 java8.com& H; N b$ R& h4 n& ~) B2 r
专栏 宣传活动的重要性 1524 t$ u4 Q, I; v# W7 _( c
7-3 实现出考虑到用户意图的搜索引擎 153
: R5 j0 H/ C) E( `7 h# _" ^' ~0 I引入停用词 1530 r- e$ O/ {4 a" ~$ ^# k9 m+ G. E2 C
应对词素解析的错误 1537 z, F J/ p f" x3 c$ |6 E
专栏 断句错误 154. w t7 h& W1 n' N; w
处理全角字符和半角字符 155
' e6 X4 d0 I( u y( x8 Y) N% E" ?对查询进行归一化 156
) k2 w. Z& C" b7 i" H( ^1 A! F留意布尔检索的解析过程 156
6 S# i( ?. F9 j1 L+ ]# D }通过词素解析器适当地解析查询 157
) y4 Y# P0 \0 B7 ]/ |对错误的输入进行修正 157
% K( h. c" e% ~0 r* b+ Q输入补全 158
& ]: n: ^3 d8 |9 K$ v& F2 j" i建议用户检索相关的关键词 159) n2 j- _0 s" _6 z
7-4 收集、提取文档时的要点 160
- f( E2 g# P: }! Y& [制作爬虫时的处理要点 160! F e/ A9 q6 Z* R* o
在提取文本时需要处理的要点 163
2 L; a2 f1 _: p9 [! j* t( WAppendix 附录 165
9 Q- u3 f/ D$ A1 U( J3 S7 h4 P$ MA-1 深度话题 166; Q3 w% g3 v6 O. J, r: z
近几年的压缩方法 1668 I7 o @. H& O* G9 E
动态索引构建 169
# q& G, ]' E- g6 L分布式索引 174
! Z% q1 s. n) @5 n6 `A-2 wiser中的文本提取和存储 178
2 L, |& q# H4 s# k9 t7 F用于处理XML的2 种API——DOM和SAX 178+ E( D$ f* [# g# ~7 T/ l
提取文档的标题和正文 179; F# l% Y2 c2 Q& y& \) Q
掌握状态的迁移 182$ j8 O& C( b( G4 F5 E2 m
构建文档数据库 187
1 M# S8 a: V1 e- n1 p* n4 G* H1 P9 |后记 191
! L- a0 V& u7 j5 s/ w. _; x
* ]! A1 J1 l1 B& B; ? 百度云盘下载地址(完全免费-绝无套路):7 ?1 k6 h) p! X8 A3 z/ y* Z3 A
5 F* p& N( f& ~, h J6 Q1 p
- H0 M0 f F' q0 a9 F8 J, X& z% O
. r5 Z& E2 I! A) X. z4 d3 n' W0 h; V$ j4 L* w1 Q7 O
7 P% ~5 R1 s. z! s0 [
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|