《Lucene+nutch搜索引擎开发》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:王学松编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115182166
  • 页数:452 页
图书介绍:搜索引擎是目前互联网最流行的三大应用之一。Lucene开源系统使搜索引擎的普及应用成为可能。本书以Lucene构建搜索引擎的开发过程为主线,由浅入深,循序渐进,为读者展示如何使用Lucene开发自己的搜索引擎系统。全书内容包括搜索引擎概述和原理、Lucene部署安装、Nutch网络蜘蛛与数据获取、:Lucene索引建立、Lucene检索与查询、搜索结果排序、文档分析与中文分词、格式化文本分析、分布式搜索与缓存。为便于读者理解搜索引擎快速开发过程,本书最后几章进行了应用实例讲解,包括Nutch构建专题搜索、Lucene构建企业级搜索实例以及相关的整体工程性能测试。本书适合对搜索引擎开发有兴趣的读者,包括搜索引擎开发的初学者、高校信息专业学生、从事搜索开发的程序设计人员详细阅读,以及希望了解搜索技术的编程爱好者、熟悉Java语言各类开发人员、广大Web网站开发人员了解相关技术。

第1章 搜索引擎概述 3

1.1什么是搜索引擎 3

1.1.1搜索引擎与信息检索 3

1.1.2搜索引擎的概念 4

1.1.3搜索引擎的使用 4

1.1.4搜索引擎发展历史 5

1.2搜索引擎分类 7

1.2.1按照工作方式分类 7

1.2.2按照领域范围分类 8

1.2.3信息类型分类 8

1.3主流搜索引擎 9

1.3.1全球著名搜索引擎 9

13.2中文搜索引擎的发展历史 12

1.3.3著名中文搜索引擎 12

1.3.4其他细化搜索引擎 15

1.4搜索引擎评价原则 15

1.4.1评价指标体系 15

1.4.2其他评测因素 17

1.5搜索引擎相关资源 17

1.5.1搜索引擎开源项目 18

1.5.2搜索引擎研究网站 19

1.5.3搜索论坛和厂商黑板报 19

1.6系统运行环境准备 20

1.6.1 Java环境安装设置 20

1.6.2 Tomcat服务器安装 22

1.6.3 Eclipse开发环境准备 25

1.7未来搜索技术前瞻 28

1.7.1现状存在问题 28

1.7.2未来发展趋势 29

1.8小结 30

第2章 搜索引擎原理探秘 31

2.1解密搜索引擎原理 31

2.1.1搜索引擎技术框架 31

2.1.2网页信息抓取技术 32

2.1.3网页内容分析技术 33

2.1.4网页索引建立技术 34

2.1.5用户检索与结果排序 34

2.1.6网页检索工具与接口 35

2.2网络爬虫简单实现 35

2.2.1网络蜘蛛功能需求 35

2.2.2网络蜘蛛实现原理 36

2.2.3网络爬虫系统结构 37

2.2.4网页采集程序设计 38

2.2.5网页采集程序实现 39

2.2.6程序实现存储扩展 42

2.3网页分析程序实现 44

2.3.1网页分析功能需求 44

2.3.2网页分析实现原理 45

2.3.3网页分析系统结构 45

2.3.4网页分析程序设计 46

2.3.5文本语素分割与过滤 49

2.4网页索引程序实现 52

2.4.1网页索引功能需求 53

2.4.2网页索引实现原理 53

2.4.3网页索引程序设计 54

2.4.4网页索引程序实现 55

2.5检索程序实现 58

2.5.1检索功能需求 58

2.5.2检索实现原理 58

2.5.3检索程序设计 59

2.5.4网页检索程序实现 59

2.6简单搜索引擎系统 61

2.7小结 62

第3章 开源搜索引擎入门 63

3.1开源搜索引擎简介 63

3.1.1 Lucene系统概述 63

3.1.2 Nutch概述 64

3.2 Lucene全文检索系统部署 65

3.2.1下载Lucene系统 65

3.2.2 Lucene部署配置 66

3.2.3 Lucene测试运行 67

3.3 Lucene开发实例入门 69

3.3.1 Lucene实例功能 69

3.3.2 Lucene开发实例 70

3.3.3代码实例解析 75

3.4 Nutch开源搜索引擎部署 77

3.4.1 Cygwin软件安装 77

3.4.2 Nutch下载与安装 79

3.4.3 Nutch系统环境测试 80

3.4.4 Nutch搜索页面部署 82

3.5 Nutch系统调试与开发 82

3.5.1 Eclipse中加载Nutch 83

3.5.2 Nutch工程编译与发布 86

3.6小结 87

第4章 搜索引擎数据获取 91

4.1网络蜘蛛原理 91

4.1.1体系结构设计 91

4.1.2访问策略与算法 92

4.1.3效率优化与更新 93

4.1.4蜘蛛访问规范 93

4.1.5开源蜘蛛简介 93

4.2 Nutch网络蜘蛛 94

4.2.1 Nutch网络蜘蛛概述 94

4.2.2 Nutch抓取模式分类 96

4.2.3抓取测试站点建立 97

4.3 Nutch局域网抓取 97

4.3.1本地下载准备 98

4.3.2启动下载过程 99

4.3.3下载过程解析 101

4.3.4下载多个网站 103

4.4 Nutch互联网抓取 105

4.4.1下载列表获取 106

4.4.2下载大量网站 106

4.5 Nutch抓取比较 107

4.6 Nutch结果检测 111

4.6.1网页内容检索 112

4.6.2使用Readdb获取摘要 113

4.6.3使用SegRead读取分段 115

4.6.4 Luke工具使用 116

4.7 Nutch配置文件解析 116

4.8 Heritrix网络蜘蛛 118

4.8.1 Heritrix概述 118

4.8.2 Heritrix体系结构 119

4.8.3Heritrix安装与使用 122

4.9小结 125

第5章 搜索引擎信息索引 126

5.1文档索引原理 126

5.1.1索引概述 126

5.1.2索引基本结构 127

5.1.3倒排索引原理 128

5.1.4索引分类 128

5.1.5高性能索引 129

5.2 Lucene索引器 129

5.2.1 Lucene索引介绍 129

5.2.2 Lucene索引结构 130

5.2.3多文件索引结构 133

5.2.4复合索引结构 134

5.3 Lucene索引实例 135

5.3.1索引创建代码解析 135

5.3.2索引创建器 137

5.3.3索引管理器 138

5.3.4索引修改器 139

5.3.5索引分析器 140

5.4 Lucene索引操作 141

5.4.1添加文本文件索引 141

5.4.2创建Lucene增量索引 143

5.4.3使用索引项删除文档 144

5.4.4使用编号删除文档 145

5.4.5压缩文档编号 147

5.4.6索引文档更新 148

5.5 Lucene索引高级特性 151

5.5.1选择索引域类型 151

5.5.2索引参数优化 162

5.5.3使用磁盘索引 165

5.5.4使用内存索引 166

5.5.5同步与锁机制 168

5.6 Lucene高级应用实例 169

5.6.1创建本地搜索的索引 169

5.6.2索引数据库记录 173

5.6.3索引优化与合并 176

5.7 Nutch中的Lucene索引 178

5.8小结 180

第6章 搜索引擎查询处理 181

6.1信息查询原理 181

6.1.1信息查询概述 181

6.1.2查询基本流程 182

6.1.3查询结果显示 183

6.1.4高性能查询 183

6.2 Lucene查询概述 184

6.2.1 Lucene查询操作基础 184

6.2.2 Lucene查询实例入门 184

6.2.3查询工具IndexSearcher类 187

6.2.4查询封装Query类 188

6.2.5查询分析器QueryParser类 188

6.2.6查询结果集Hits类 191

6.3 Lucehe基本查询 192

6.3.1 Lucene查询Query对象 192

6.3.2最小项查询 195

6.3.3区间范围搜索 198

6.3.4逻辑组合搜索 202

6.3.5字串前缀搜索 205

6.3.6短语搜索 208

6.3.7模糊搜索 211

6.3.8通配符搜索 214

6.3.9位置跨度搜索 217

6.4 Lucene高级查询 224

6.4.1索引内存检索 224

6.4.2多关键字跨域检索 226

6.4.3多检索器跨索引检索 228

6.5 Nutch中的Lucene查询 230

6.6小结 231

第7章 搜索引擎结果排序 232

7.1搜索引擎文档排序原理 232

7.1.1传统检索排序技术 232

7.1.2向量模型排序局限 233

7.1.3搜索引擎相关性排序 234

7.1.4链接分析PageRank原理 235

7.1.5搜索引擎排序流程 236

7.2 Lucene检索排序 236

7.2.1 Lucene相关性因素 236

7.2.2 Lucene相关排序流程 237

7.2.3 Lucene排序计算体系 237

7.2.4 Lucene排序控制方法 240

7.3文档Boost加权排序 240

7.3.1 Lucene中Boost介绍 241

7.3.2 Boost值全文档排序 241

7.3.3 Boost值文档域排序 244

7.3.4 BoostingTermQuery排序 246

7.4 Sort对象检索排序 248

7.4.1 Sort对象概述 248

7.4.2 Sort对象相关性排序 249

7.4.3 Sort对象文档编号排序 252

7.4.4 Sort对象独立域排序 254

7.4.5 Sort对象联合域排序 257

7.4.6 Sort对象逆向排序 260

7.5 Lucene相关性公式 261

7.5.1 Lucene评分结果分析 262

7.5.2 Lucene排序公式 264

7.5.3其他动态排序因子 265

7.6 Lucene自定义排序 266

7.6.1自定义排序比较接口 266

7.6.2自定义排序接口类实例 267

7.6.3自定义排序结果测试实例 269

7.6.4自定义排序测试结果 272

7.7 Nutch中的结果排序 272

7.7.1 Nutch排序因素 273

7.7.2 Nutch链接分析 273

7.7.3 Nutch相关度计算 274

7.8小结 275

第8章 文档分析器与中文分词 276

8.1文档分析与中文分词原理 276

8.1.1文档分析预处理概述 276

8.1.2文档分析基本流程 276

8.1.3中文分析处理中的分词 277

8.2 Lucene分析器内核原理 278

8.2.1 Lucene分析器原理 278

8.2.2 Analysis包简介 280

8.2.3 Analyzer类的组合结构 282

8.2.4 JavaCC构造分析器 282

8.2.5 StopAnalyzer内核代码分析 283

8.2.6 StandardAnalyzer内核代码分析 284

8.3 Lucene分析器应用模式 285

8.3.1使用默认分析器建立索引 285

8.3.2使用多种分析器建立索引 287

8.3.3使用分析器检索查询 288

8.4 Lucene主要分析器应用实例 291

8.4.1停用词分析器StopAnalyzer 291

8.4.2标准分析器StandardAnalyzer 294

8.4.3简单分析器SimpleAnalyzer 297

8.4.4空格分析器WhitespaoeAnalyzer 298

8.4.5关键字分析器KeywordAnalyzer 300

8.5 TokenStream分词器内核分析 301

8.5.1 Tokenizer分词器 301

8.5.2标准分词器StandardTokenizer 302

8.5.3字符分词器CharTokenizer 303

8.5.4空格分词器 WhiteSpaceTokenizer 304

8.5.5字母分词器LetterTokenizer 304

8.5.6小写分词器LowerCaseTokenizer 305

8.6 TokenStream过滤器内核分析 305

8.6.1 TokenFilter过滤器 306

8.6.2标准过滤器StandardFilter 306

8.6.3停用词过滤器StopFilter 307

8.6.4 小写过滤器LowerCaseFilter 308

8.6.5长度过滤器LengthFilter 309

8.6.6词干过滤器PorterStemFilter 310

8.7 Lucene中文分词 310

8.7.1中文分词基本原理方法 311

8.7.2 StandardAnalyzer分析器中文处理 312

8.7.3 CJKAnalyzer中文分析器 313

8.7.4 ChineseAnalyzer中文分析器 315

8.7.5 IK CAnalyzer中文分析器 316

8.7.6中科院ICTCLAS中文分词 318

8.7.7 JE中文分词 318

8.7.8中文分词问题 320

8.8 Nutch分词和预处理 321

8.8.1 N utch分析器 321

8.8.2 Nutch中文分词 324

8.9小结 324

第9章 搜索引擎文本分析 325

9.1非结构化文本简介 325

9.1.1非结构化文本概述 325

9.1.2非结构化文本检索 325

9.2 HTML文档分析 326

9.2.1主流HTML文档分析器 326

9.2.2 HTMLParser安装配置 327

9.2.3 HTMLParser的框架结构 328

9.3HTMLParser应用实例 329

9.3.1 HTMLParser功能模式 329

9.3.2 HTMLParser内容解析方式 329

9.3.3 Visitor模式正文解析 330

9.3.4 Filter模式简单链接提取 332

9.3.5 Filter模式搜索链接提取 334

9.3.6 Lexer模式遍历文档 336

9.4 PDF文档分析 337

9.4.1常用的PDF处理包 338

9.4.2 PDFBox安装配置 338

9.5 PDFBox应用实例 339

9.5.1 PDFBox提取文档内容 339

9.5.2 PDFBox文档内容索引 342

9.6 Office文档分析 346

9.6.1常用Office文档处理包 346

9.6.2使用POI安装与配置 346

9.6.3 POI原理与接口介绍 348

9.7 POI分析Office文档实例 348

9.7.1 POI处理Excel文档 348

9.7.2 POI处理Word文档 352

9.8 XML文档分析 354

9.8.1主流XML文档分析器 355

9.8.2 JDOM分析器安装配置 356

9.8.3 xerces分析器安装配置 358

9.9 XML解析应用实例 359

9.9.1使用JDOM分析XML文档 359

9.9.2使用xerces分析XML文档 361

9.10 Nutch文档处理 364

9.11小结 364

第10章 分布式搜索与缓存 365

10.1分布式检索与缓存 365

10.1.1分布式搜索引擎现状 365

10.1.2分布式搜索引擎原理 366

10.1.3搜索引擎缓存现状 367

10.1.4搜索引擎缓存原理 367

10.2 Nutch与分布式检索 368

10.2.1 Google分布式文件系统 368

10.2.2 MapReduce系统介绍 369

10.2.3 Hadoop分布式文件系统 370

10.2.4 Nutch分布式文件系统 372

10.2.5 Nutch分布式检索概述 372

10.2.6 Nutch分布式检索器 375

10.3 Lucene分布式检索 376

10.3.1 Socket通信基础 376

10.3.2 Lucene索引服务器 378

10.4 Nutch与搜索缓存 381

10.5开源系统缓存系统 383

10.6小结 384

第11章Nutch专题搜索引擎实例 387

11.1专题搜索需求分析 387

11.1.1专题搜索功能需求 387

11.1.2专题搜索用例分析 388

11.2构建Nutch基础搜索引擎 389

11.2.1 Nutch搜索功能分析 390

11.2.2信息下载功能测试 390

11.2.3 N utch基础Web检索 391

11.2.4 Web用户页面修改 393

11.3专题搜索系统设计 395

11.3.1系统框架设计 396

11.3.2选择开发工具组件 397

11.4专题关键词管理 397

11.4.1专题关键词策略 398

11.4.2关键词存储设计 398

11.4.3关键词管理程序 400

11.5专题资源发现 403

11.5.1专题网页链接发现 403

11.5.2专题资源网站提取 406

11.6专题信息下载 407

11.6.1批量信息下载 407

11.6.2信息自动下载 410

11.7专题信息分析与索引 412

11.7.1网页信息分析 413

11.7.2创建索引 413

11.8检索辅助功能 414

11.8.1相关词推荐 414

11.8.2检索词高亮显示 416

11.8.3检索结果翻页 418

11.9小结 424

第12章Lucene实现企业搜索实例 425

12.1企业搜索需求分析 425

12.1.1企业搜索需求概述 425

12.1.2企业搜索用例分析 426

12.2企业级搜索系统设计 427

12.2.1系统框架设计 427

12.2.2 Lucene检索框架 428

12.3企业级搜索系统设计 428

12.3.1创建Lucene工程 429

12.3.2全文检索索引生成 429

12.3.3全文检索检索页面 433

12.4数据引擎设计 438

12.4.1数据库数据管理 438

12.4.2非结构化文档 439

12.5企业信息索引 442

12.5.1数据索引建立 443

12.5.2信息检索代码 447

12.5.3检索Web代码 449

12.5.4检索结果测试 451

12.6小结 452