TA的每日心情 | 开心 13 小时前 |
---|
签到天数: 324 天 [LV.8]以坛为家I
管理员
- 积分
- 10945
|
Java电子书:自制搜索引擎 PDF 电子书 Java吧 java8.com6 Z- f+ e- `( H0 s% Y& E/ }
# r4 X" F% ^3 b# W- N# ~4 c6 i; a
作者:山田浩之 末永匡出版社:人民邮电出版社出版时间:2016年01月
; Z3 [ i6 Z% K- _9 }$ ^; X3 T$ v- }9 C/ W P: g
编号:166-Java吧资源免费-X0112【Java吧 java8.com】
, |$ n$ D; U, ~! Z% s& r2 G |6 a/ I$ [) f
' C3 N$ l$ m% Z
4 Z. z' |, s+ r( U2 j6 {& f- ]3 Q/ o% `; H
目录:
1 u: [, K( w1 @! M% Z4 S第 1章 搜索引擎是如何工作的 1
( M& s# R4 N: K( e% e1-1 理解搜索引擎的构成 3; G- L1 j: p1 \
什么是搜索引擎 3: i. ^$ ^, m D+ Z( \% @( q% R
构成搜索引擎的组件 4
) A2 B' |9 W1 X5 S6 {7 k5 R3 H& s与搜索引擎相关的组件 5
, y3 }& U6 L+ i; _7 w1-2 实现了快速全文搜索的索引结构 7
- D0 c) [, d# h6 K' p# W全文搜索的两种方法 7
# S' E1 k( q' |3 @( }7 G倒排索引的结构 8
. _$ A% {) N4 t; c1 e倒排索引的构建方法 9, b0 y) B- m% B5 J7 D) i
倒排索引中的术语 10
# x. A( r4 J2 L' b/ `1-3 深入理解倒排索引 12
" f$ h' k% y! ~9 j; K' ]! F4 i倒排索引=词典+倒排文件 12& T5 t! A l6 Z- t! ~4 I5 q! _
从倒排索引中查找单词 138 C4 o4 \/ |. ` M+ s- _5 K3 p
将单词的位置信息加入倒排文件中 13
" e; A( H0 R' p从倒排索引中查找短语 144 q7 e$ E& I+ ^$ L: A; Y
1-4 制作中文文档的倒排索引 166 s- R. s1 x9 M% a8 p( q" n0 x+ \
分割中文句子的方法 16" [, K% B) I H( R& w( z6 S
权衡分割方法 175 J; n+ ] Y( e% T6 j7 ?# T
1-5 实现倒排索引 19
. _. a9 i& J" o. A1 A5 s) L$ _! e7 [& J4 Q实现词典 19% d- E' d1 U( Z6 _7 c; j/ ]$ C
实现倒排文件 22; {" S5 V" F/ f4 P1 }& Y
1-6 使用倒排索引进行检索 24- i5 B4 S& f& i; |4 [
布尔检索 24
: |% W g( j9 } Z7 N使用倒排索引的检索处理流程 24
5 K# t+ C( ?1 {6 W4 \8 q关联度的计算方法 26
. V9 ?+ V3 d& f- ~' w% i信息检索中的检索 27# C2 P" g0 ]: T& y$ d: A
1-7 构建倒排索引 29" }- J% S+ Q! }3 f J
使用内存构建倒排索引 29
& e* z0 R0 L4 O4 {; k6 {5 k使用二级存储构建倒排索引 29( N& p |' s( |7 l, Q( @& i! L6 v
静态索引构建和动态索引构建 32
; [3 T3 x( }& V4 \& j b1-8 准备要检索的文档 34, h4 t% p o1 e( q6 q
收集数据 34+ l8 d) t2 a: F# F) ]& Q" |0 t
数据规范化 358 y: N& {& C+ I! {) m
第 2章 准备全文搜索引擎的检索样本 37
: C% b5 B: T5 G# o& A2-1 全文搜索引擎wiser 397 u' n' O/ M- Z2 e
wiser的构成 39
0 m- W& o# ~' a4 g准备用于检索的文档 40 v7 J: ] G0 L+ n' f. a
2-2 安装wiser 42& o, r3 j1 [# ~- Y# L& ^1 H: [
构建wiser 42
7 h2 {3 y% L# y& T0 H启动wiser 43
* x6 q4 q& W. m解压缩Wikipedia的副本 44
5 i% c! J. e, ]" \4 b2-3 运行wiser 455 \. V" W/ w: [0 m5 I
构建倒排索引 45
0 o! D* C+ c$ Q) P/ f6 S- T) a. l使用倒排索引查询 46 i# m, i9 P! p7 q
比较grep和wiser的运行速度 46
) _& j: q' D' R1 [# W. } Z第3章 构建倒排索引 49
7 P7 ?9 o8 T J% Y3-1 复习有关倒排索引的知识 516 M% Q7 k9 V: `6 {
提取词元 514 U j/ R1 l' i6 l( J% m8 ]1 \, ?
为每个词元创建倒排列表 53
. u* A" R+ o0 L# s+ Z: O+ F3 D3-2 构建倒排索引 54. N8 k/ ]5 E' ^& f% ]
在存储器上创建倒排列表 548 S1 Y; w/ o" Q/ `2 {) x
倒排列表和倒排文件的数据结构 541 S7 V# |7 a+ T
从源代码级别梳理倒排索引的构建顺序 56
3 ~* N! e0 i, K8 O进一步阅读源代码 594 g2 q1 l( z. q6 e& m0 L1 v
专栏 根据实际情况设计搜索引擎(系统) 68; y. z }2 p, m, J) N
第4章 开始检索吧 71
5 Q0 B3 V9 l8 a7 N/ n+ `2 k) z4-1 检索处理的大致流程 73
: ?3 Q6 H, G( U+ \ G$ e充分理解检索处理的流程 73
2 u+ J1 K: ?0 z: U2 \4-2 使用倒排索引进行检索 75
" O" y& E- a& P! H; @从源代码级别梳理检索处理的流程 75
! [9 X: l/ l0 K解读split_query_to_tokens()函数的具体实现 76
2 C4 G3 W# ?& q使用具体示例加深对检索处理流程的理解 773 G: l4 p' Z9 P+ w3 N
解读函数search_docs()的实现细节 80
- p( v: j$ ]; Q7 _解读函数search_phrase()的实现 848 w; S; k. A' _% m0 T3 P
专栏 如何实现标签检索 88
- a' W) p& h" X% j第5章 压缩倒排索引 89) n$ ]( ]) E* g. R: B* m
5-1 压缩的基础知识 90
9 w$ G0 A& }' l- U! t7 q* {压缩倒排索引的好处 90
- \6 e, u3 Q: m% s0 y! j5 U专栏 压缩的目的 90
) U, m6 {* C, Z$ X: s; g* ~6 h倒排索引的压缩方法 91
/ U: I; i: ?' D( t倒排文件的压缩方法 91& S* F% E' n( [" P. M! m$ k8 Z
压缩的原理 94+ n6 [3 P& n- d% E# R
5-2 实现wiser中的压缩功能 97) s7 \1 k9 h9 C
压缩功能源代码的概要 979 b( k% _5 x4 P1 Z* @: O
了解无需进行压缩时的操作 99; h! ^0 H2 i+ k+ z) H# P
抓住Golomb编码的要点 101, H! m4 F: Z0 Q3 ?- \
解读Golomb编码中的编码处理 105
7 o, W/ v# m$ j* {$ m+ E0 d1 N! x0 B3 H解读Golomb编码的解码处理 108& ]7 ?# K% g' ^9 V
第6章 挑战wiser的优化及参数的调整 113. ]9 O5 R! F. _. p6 p
6-1 提高检索处理的效率 115/ ]' l& u1 G: o" S3 v
优化检索处理 115
4 h: U3 d5 |' U7 H0 @# X. b* [将查询分割为无重复部分的词元序列 116) W3 \. N$ g. \7 N* c
6-2 禁用短语检索 119) W* d# h7 `3 d5 t
分析对2字符的字符串进行检索时的行为 119
2 ] I; E0 i e8 U$ E" E分析对3字符的字符串进行检索时的行为 120
1 T4 U+ C. e u3 V4 B8 c6-3 改变检索结果的输出顺序 122; E, u9 \2 ?; }
作为检索结果排序核心的指标 122& l* P6 n' p. C/ j5 X: ?9 r
按照文档大小降序排列的检索结果 124
, z% o$ a7 ?; s9 |! M) F专栏 排名欺诈 1286 N& A- E s7 t6 j) Z2 u! ^$ N* k
6-4 让1个字符的查询也能检索出结果 29* }( n* Q4 W4 |
获取以特定字符开头的词元的列表 129
2 F7 V0 f4 k2 l" R F合并检索到的结果 131
" U! u: b8 M) o+ H) v- ~专栏 如何实现相似文档的检索 131
& |! m5 M" r# o( w6-5 调整控制倒排索引更新的缓冲区容量 133
! u R! ^ R2 T: s确认由缓冲区容量的差异带来的不同效果 133; m5 W# G0 G- h8 ~1 ~* G
用sar命令分析负载 134
" O* d% @# ~. r+ u7 j6-6 调整只有英文字母的词元的分割方法 135, P" E" v* W3 e) u% j- U0 ]! _
如何避免用英文单词检索时准确率下降的问题 135& F& m3 _6 g" ?7 f1 l
如何判断某字符是否属于索引对象 1354 d2 i7 o3 H' R) I
修改负责分割词元的函数 136% W$ @0 O0 C8 g# w4 l' [) }* X, o
6-7 确认压缩的效果 138
0 J3 U: |) R4 ~观察Golomb编码的效果 138
2 S! H7 m& a9 P8 t k) t对比压缩启用前后的索引大小 138
% X. X) B0 | i& C: N专栏 避免滥用全文搜索引擎 1398 ~6 A: _4 Z# ]; |/ ?& f; ^$ `/ z$ h
第7章 为今后更加深入的学习做准备 141
9 U) i5 [* [1 b3 q. O2 K: T7-1 wiser没能实现的功能 143! t8 U ~- V4 ~* M6 ]
倒排索引之外的全文搜索索引 143
, {/ V& t! O3 V( q2 y高效处理大规模数据的存储器 1433 x/ \% j) {# y3 E/ p
利用缓存提高检索的速度 1432 b0 d4 s' l/ l. S M. h1 D+ \
使用各种各样的压缩方法 144
5 F3 y$ s! C7 H f" }% m" \优化搜索结果的排名 144$ Q& p5 d$ W4 B T: m
调整准确率和召回率 145
8 t8 u$ D: M' {3 D降低检索结果排序处理的负载 1474 j7 s7 O6 v1 g6 k- g* Q
并行处理 147
% O6 X+ O( m( o6 V( u! C2 `$ e- o结合对属性的筛选过滤 148
1 O# x3 g- _. t+ u% z: U分面搜索 148. @9 y3 G, q8 C
专栏 时延和吞吐量 149
* e4 r6 _) l8 Y6 ~) D w7-2 全文搜索引擎Groonga的特点 1506 V- Y/ \5 |' B5 m, Y1 R
通过词元的部分一致检索提升召回率 150
$ X& w5 a9 t% t- n1 b% L q6 m使用内存映射文件 151/ L# Z5 C! j3 w
片段 152 java8.com
% S+ S: s; f7 l( \$ y" R专栏 宣传活动的重要性 152# z3 A7 v) Z! d2 X4 ]/ z
7-3 实现出考虑到用户意图的搜索引擎 1530 _9 A- E9 \: N) f
引入停用词 1532 o* T" E, p+ K Z# c
应对词素解析的错误 153
+ Z% Q2 }- S- p: Y专栏 断句错误 154& x, G* Q9 s! t4 z, N
处理全角字符和半角字符 1558 I/ m1 V, a }% U2 j# n3 O Z/ A
对查询进行归一化 156/ P$ }% _* ^- d# b$ Z
留意布尔检索的解析过程 1568 N6 }' m1 ?3 g! @8 _
通过词素解析器适当地解析查询 157
( c, g$ V4 h: { b9 ^5 _2 N对错误的输入进行修正 1577 @0 f1 {- x6 b. c
输入补全 158" F- c. t+ g1 |7 L
建议用户检索相关的关键词 159
/ T6 {- q: x8 }" V- k7-4 收集、提取文档时的要点 160
1 r8 v- F- ^/ c5 |制作爬虫时的处理要点 1601 K1 z _4 e s
在提取文本时需要处理的要点 163& ?- B+ |3 W2 G) ?+ i+ ~
Appendix 附录 165
2 r. j- t( e0 ~0 M4 tA-1 深度话题 166
% N5 p) n8 y. C* G近几年的压缩方法 166
0 g! v1 W( H: { v+ C动态索引构建 169
b! V- G2 L7 |分布式索引 1747 l) U+ ]9 z* K
A-2 wiser中的文本提取和存储 178: `5 i9 o7 q, }4 V B
用于处理XML的2 种API——DOM和SAX 178
. h( o8 v1 D5 v0 A% z9 h( y提取文档的标题和正文 179
* I6 s6 {4 k; `( S) D掌握状态的迁移 182/ ~1 p* t8 S* h8 {- w
构建文档数据库 187 I- j, C8 M' B7 z
后记 191. P- n; Y1 P9 r8 y, [# F; G
+ S$ ~, \: G2 J- y6 H 百度云盘下载地址(完全免费-绝无套路):; R: {6 ~# N" Q$ t, x1 v
. c1 I; M9 a( y; Z
4 P; }( @6 B4 S Y1 K ]. [+ s9 X
, K% o6 O, c+ x+ w4 S
$ H7 ?! [+ @- L$ @* i& z
# m. M2 X3 ~! n `, P1 P |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|