图书介绍

开发自己的搜索引擎 Lucene+HeritrixPDF|Epub|txt|kindle电子书版本网盘下载

开发自己的搜索引擎 Lucene+Heritrix
  • 邱哲,符滔滔,王学松编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115215291
  • 出版时间:2010
  • 标注页数:562页
  • 文件大小:196MB
  • 文件页数:578页
  • 主题词:计算机网络-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

开发自己的搜索引擎 Lucene+HeritrixPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 搜索引擎与信息检索1

1.1搜索引擎的历史1

1.1.1萌芽:Archie、Gopher1

1.1.2起步:Robot(网络机器人)的出现与Spider(网络爬虫)3

1.1.3发展:Excite、Galaxy、Yahoo等4

1.1.4繁荣:Infoseek、AltaVista、Google和Baidu6

1.2信息检索系统的基本知识9

1.2.1信息检索系统9

1.2.2信息检索的过程11

1.2.3传统查找的优点和不足12

1.2.4使用索引提高检索速度12

1.2.5倒排索引13

1.2.6评价信息检索系统的标准14

1.3 Lucene的简介14

1.4小结15

第2章Lucene入门实例16

2.1实例介绍16

2.1.1实例说明16

2.1.2开发过程16

2.2准备工作17

2.2.1将文档的全角标点转成半角标点17

2.2.2将大文档切分成多个小文档20

2.2.3预处理源文件的统一接口21

2.3创建Eclipse工程22

2.3.1准备工作22

2.3.2创建工程并引入Lucene的JAR包24

2.3.3运行文档预处理类31

2.3.4创建处理文档的索引类:IndexProcessor32

2.3.5创建检索索引的搜索类34

2.4运行效果38

2.5小结41

第3章 索引的建立42

3.1 Document逻辑文件42

3.1.1 Lucene的Document42

3.1.2为Document添加多种Field43

3.1.3 Document的内部实现45

3.2 Field的内部实现46

3.2.1 Field包含的类47

3.2.2 Field类的构造方法48

3.3 Lucene的索引工具IndexWriter49

3.3.1 IndexWriter的初始化50

3.3.2向索引添加文档52

3.3.3限制每个Field中的词条的数量53

3.4 Lucene索引过程详解54

3.4.1 Lucene索引建立过程概览54

3.4.2使用addDocument方法向索引添加文档55

3.4.3 DocumentWriter的addDocument方法57

3.4.4文档的倒排62

3.4.5对postingTable进行排序66

3.4.6将Posting信息写入索引68

3.5索引文件格式68

3.5.1索引的segment69

3.5.2 .fnm格式69

3.5.3 .fdx与fdt格式70

3.5.4 .tii与.tis格式71

3.5.5 deletable格式71

3.5.6 复合索引格式.cfs71

3.6索引过程的调优72

3.6.1合并因子mergeFactor72

3.6.2 maxMergeDocs73

3.6.3 minMergeDocs73

3.7索引的合并与索引的优化74

3.7.1 FSDirectory与RAMDirectory74

3.7.2使用IndexWriter来合并索引75

3.7.3索引的优化76

3.8从索引中删除文档78

3.8.1索引的读取工具Index-Reader78

3.8.2使用文档ID号来删除特定文档81

3.8.3使用Field信息来删除批量文档84

3.9 Lucene的同步问题85

3.9.1为什么要进行同步以及Lucene的同步法则85

3.9.2 commit.lock与write.lock85

3.10 Lucene 2.0的新类:IndexModifier类86

3.11小结87

第4章Lucene搜索88

4.1使用IndexSearcher进行搜索88

4.1.1初始化IndexSearcher88

4.1.2 IndexSearcher的最简单使用89

4.1.3 IndexSearcher的多种search方法90

4.2 Hits类详解92

4.2.1 Hits类的公有接口92

4.2.2效率分析93

4.2.3 Hits内部的缓存95

4.2.4 Hits类的工作原理98

4.3对搜索结果的评分98

4.3.1文档与词条的向量空间98

4.3.2 Lucene的文档得分算法99

4.4构建各种Lucene内建的Query对象103

4.4.1 toString:查看原子查询103

4.4.2查询重写与权重103

4.4.3 TermQuery词条搜索104

4.4.4 BooleanQuery布尔搜索105

4.4.5 RangeQuery范围搜索113

4.4.6 PrefixQuery前缀搜索117

4.4.7 PhraseQuery:短语搜索119

4.4.8 MultiPhraseQuery:多短语搜索123

4.4.9 FuzzyQuery模糊搜索128

4.4.10 WildcardQuery通配符搜索131

4.4.11 SpanQuery跨度搜索132

4.5第三方提供的Query对象:RegexQuery140

4.6通过QueryParser转换用户关键字142

4.6.1词条的定义143

4.6.2 QueryParser初始化143

4.6.3改变QueryParser默认的布尔逻辑144

4.6.4短语和QueryParser145

4.6.5 FuzzyQuery和QueryParser147

4.6.6通配符与QueryParser147

4.6.7查找指定的Field148

4.6.8 RangeQuery与QueryParser151

4.6.9 QueryParser和SpanQuery152

4.7多Field搜索与多索引搜索153

4.7.1多域搜索MultiFieldQuery-Parser153

4.7.2 MultiSearcher在多个索引上搜索155

4.7.3 ParalellMultiSearcher:多线程搜索158

4.7.4 Searchable和RMI161

4.8小结162

第5章 排序、过滤和分页163

5.1相关度排序163

5.1.1使用Score进行自然排序163

5.1.2 Searcher的explain方法165

5.1.3通过改变boost值来改变文档的得分166

5.2使用Sort来排序170

5.2.1 Sort简介170

5.2.2 SortField171

5.2.3按文档得分进行排序172

5.2.4按文档的内部ID号来排序175

5.2.5按一个或多个Field来排序175

5.2.6改变SortField中的Locale信息182

5.3搜索的过滤器183

5.3.1过滤器的基本结构183

5.3.2一个简单的Filter:建立索引184

5.3.3一个简单的Filter:打印索引文档信息186

5.3.4一个简单的Filter:安全级别与过滤器代码187

5.3.5一个简单的Filter:在搜索时应用过滤器188

5.3.6一个简单的Filter:总结190

5.3.7按范围过滤RangeFilter190

5.3.8在结果中查询QueryFilter194

5.3.9缓存结果:Caching-WrapperFilter197

5.4翻页问题198

5.4.1依赖于session的翻页198

5.4.2多次查询198

5.4.3缓存+多次查询199

5.4.4缓存+多次查询+数据库199

5.5小结200

第6章Lucene的分析器201

6.1分析201

6.1.1分词201

6.1.2 Lucene的分析器结构202

6.1.3 Lucene的分析器实现204

6.2 Lucene与JavaCC205

6.2.1 JavaCC简介205

6.2.2 JavaCC为Lucene提供的分析器脚本206

6.2.3 Lucene的标准分析器210

6.2.4标准过滤器:Standard-Filter211

6.2.5大小写转换器:Lower-CaseFilter212

6.2.6忽略词过滤器:Stop Filter213

6.3分析器的进阶213

6.3.1再看StandardAnalyzer中的管道过滤器结构214

6.3.2长度过滤器:LengthFilter214

6.3.3 PerFieldAnalyzerWrapper215

6.3.4其他215

6.4对中文的分析216

6.4.1现有的中文分词方式简介216

6.4.2中科院的分词软件和JE分词218

6.5小结224

第7章Word、Excel和PDF的处理225

7.1使用PDFBox处理PDF文档225

7.1.1 PDFBox的下载225

7.1.2在Eclipse中配置226

7.1.3使用PDFBox解析PDF内容227

7.1.4运行效果228

7.1.5与Lucene的集成230

7.2使用xpdf来处理中文PDF文档232

7.2.1 xpdf的下载232

7.2.2配置232

7.2.3提取中文233

7.2.4运行效果236

7.3使用POI来处理Excel和Word文件格式237

7.3.1对Excel的处理类237

7.3.2 ExcelReader的运行效果241

7.3.3 POI中Excel文件Cell的类型243

7.3.4对Word的处理类245

7.4使用Jacob来处理Word文档247

7.4.1 Jacob的下载247

7.4.2在Eclipse中配置247

7.5小结249

第8章Compass:封装了Lucene的框架250

8.1 Compass简介250

8.1.1 Compass的下载250

8.1.2 Compass的代码片断250

8.2 Compass的初始配置252

8.2.1Compass的配置文件252

8.2.2将索引存放于内存中253

8.2.3使用JDBC来存储索引253

8.2.4使用连接池来存储索引254

8.2.5加载compass.cfg.xml文件255

8.3域模型的配置255

8.3.1实体代码255

8.3.2实体关系261

8.3.3实体Book的配置文件262

8.3.4通用元数据定义文件(.cmd.xml)263

8.3.5 Author和Article的配置文件267

8.4使用Compass来建立索引269

8.4.1索引代码269

8.4.2对象关系图和运行结果271

8.5使用Compass来搜索272

8.5.1使用find()方法搜索272

8.5.2 CompassHits类型273

8.5.3 CompassHit类型274

8.5.4使用Lucene语法来查找275

8.6配置Analyzer和Optimizer276

8.7小结277

第9章Lucene分布式278

9.1 Lucene与分布式278

9.1.1什么是GFS278

9.1.2为Lucene提供分布式的几点设想279

9.2小结281

第10章 无比强大的网络爬虫Heritrix282

10.1 Heritrix的使用入门282

10.1.1下载和运行Heritrix282

10.1.2在Eclipse里配置heritrix的开发环境285

10.1.3创建一个新的抓取任务290

10.1.4设置抓取时的处理链292

10.1.5设置运行时的参数295

10.1.6运行抓取任务297

10.1.7 Heritrix的镜像存储结构302

10.1.8终止抓取或终止Heritrix的运行303

10.2 Heritrix的架构304

10.2.1抓取任务CrawlOrder304

10.2.2中央控制器CrawlController305

10.2.3 Frontier链接制造工厂308

10.2.4用Berkeley DB实现的BdbFrontier313

10.2.5 Heritrix的多线程ToeThread和ToePool316

10.2.6 处理链和Processor319

10.3扩展和定制Heritrix322

10.3.1向Heritrix中添加自己的Extractor323

10.3.2定制Queue-assignment-policy两个问题327

10.3.3定制Queue-assignment-policy继承QueueAssignmentPolicy类328

10.3.4扩展FrontierScheduler来抓取特定的内容329

10.3.5在Prefetcher中取消robots.txt的限制330

10.4小结331

第11章 搜索引擎综合实例:准备篇332

11.1数码产品垂直搜索引擎实例简介332

11.1.1垂直搜索引擎实现流程332

11.1.2数码垂直搜索引擎搜索功能333

11.1.3信息来源网站的选择方法333

11.1.4太平洋电脑网和网易手机频道334

11.2准备Eclipse的Web开发环境335

11.2.1准备Eclipse的Web插件环境335

11.2.2在Eclipse中配置插件336

11.3准备垂直搜索引擎工程337

11.3.1建立搜索引擎Eclipse工程338

11.3.2设置搜索引擎工程上下文信息339

11.3.3设定源代码存放和输出路径340

11.3.4添加自定义的Java代码341

11.3.5添加工程中引用的Jar包343

11.3.6创建工程JSP页面文件345

11.3.7构造完成的工程整体结构347

11.4搜索引擎配置信息管理及相关类349

11.4.1工程配置信息管理349

11.4.2系统属性配置文件350

11.4.3配置文件管理封装类350

11.5小结352

第12章 搜索引擎综合实例:下载篇353

12.1数码产品网络爬虫353

12.1.1垂直搜索引擎网络爬虫设计353

12.1.2来源网站内容与链接分析354

12.2数码产品信息来源列表准备356

12.2.1太平洋电脑网待抓取内容页面分析356

12.2.2太平洋电脑网带抓取内容代码分析359

12.2.3太平洋电脑网手机品牌清单分析362

12.3 Eclipse中定制数码产品Heritrix爬虫367

12.3.1数码产品Heritrix爬虫的功能367

12.3.2 Eclipse中导入编译Heritrix工程368

12.3.3 Eclipse中运行Heritrix工程370

12.4抓取pconline网页的定制扩展类371

12.4.1抓取pconline网页的Frontier扩展371

12.4.2执行pconline手机网页抓取任务373

12.5抓取网易手机频道的定制扩展类375

12.5.1网易手机频道结构分析375

12.5.2设计网易抓取的Extractor扩展378

12.5.3设计网易抓取的Frontier扩展381

12.5.4执行网易手机频道网页抓取任务382

12.6小结383

第13章 使用正则表达式与HTMLParser分析网页384

13.1网页内容分析方法概述384

13.1.1网页HTML的基本知识384

13.1.2 JDK正则表达式简介385

13.1.3 HTMLParser开源库介绍387

13.2正则表达式精确提取网页内容388

13.2.1正则表达式java.util.regex使用388

13.2.2正则表达式提取tom星座内容实例390

13.2.3正则表达式提取pconline手机品牌列表396

13.3 HTMLParser高效提取网页内容398

13.3.1 HTMLParser使用准备398

13.3.2 Lexer模式功能及实现399

13.3.3 HTMLParser功能及实现404

13.3.4 HTMLParser解析星座网页实例410

13.4数码产品网页内容解析系统413

13.4.1产品详细信息文件格式413

13.4.2解析产品网页信息的基类Extractor414

13.5 pconline手机产品网页内容解析418

13.5.1 pconline手机产品页面Extractor解析器418

13.5.2 pconline产品信息解析测试函数421

13.5.3 pconline产品信息解析代码执行结果422

13.6网易手机频道产品内容解析425

13.6.1网易手机频道产品信息的Extractor解析器425

13.6.2网易手机频道的产品信息运行测试效果428

13.7小结429

第14章 网页内容存储与索引430

14.1构建产品检索名称信息词库430

14.1.1产品名称词汇选择430

14.1.2产品名称词库提取代码431

14.1.3产品名称词库提取结果433

14.2手机产品数据库与文件索引结构434

14.2.1手机产品的存储方法434

14.2.2手机产品信息Product类435

14.2.3产品信息数据库存储结构437

14.2.4产品信息Lucene索引结构438

14.3产品信息数据库存储与处理439

14.3.1数据库创建与准备439

14.3.2 Java数据库基本操作440

14.3.3数码产品数据库记录操作441

14.4产品信息文件存储与Lucene索引443

14.4.1数码产品Lucene索引操作设计443

14.4.2数码产品具体索引操作代码445

14.5产品信息综合处理与运行446

14.5.1调用数据库处理类和索引处理类446

14.5.2数码产品数据处理类运行452

14.6小结454

第15章 搜索引擎综合实例:交互篇455

15.1 DWR的技术介绍455

15.1.1 Ajax与DWR简介455

15.1.2 Ajax与传统模式搜索架构456

15.2 DWR安装与配置457

15.2.1 DWR的下载与安装457

15.2.2创建工程结构458

15.2.3配置web.xml内容460

15.2.4建立配置dwr.xml内容461

15.3 DWR入门与实例演示461

15.3.1简单Ajax页面代码461

15.3.2运行效果与对比464

15.3.3 DWR与直接使用XMLHttpRequest对象的比较468

15.3.4在DWR中操纵自定义的对象470

15.3.5查看DWR的输出日志477

15.4 dwr.xml的配置进阶477

15.4.1 dwr.xml的标准结构478

15.4.2 <init>标签与DWR自带的converter和creator479

15.4.3 <allow>标签483

15.4.4 <signature>标签484

15.4.5转换器converter485

15.5使用DWR工具库util.js488

15.5.1页面中调用util.js489

15.5.2使用useLoadingMessage()方法显示提示图标490

15.5.3 DWRUtil.setValue()和DWRUtil.getValue()495

15.5.4 DWRUtil.getValues和DWRUtil.setValues498

15.5.5 DWRUtil.addOptions和DWRUtil.removeAll-Options503

15.5.6 DWRUtil.addRows和DWRUtil.removeAll-Rows508

15.5.7 DWRUtil.toDescriptive-String方法515

15.6小结516

第16章 搜索引擎综合实例:Web篇517

16.1 Web配置文件517

16.1.1配置文件及其作用517

16.1.2 Spring配置文件518

16.1.3 DWR配置文件519

16.1.4 web.xml配置文件520

16.2各种搜索相关Bean类521

16.2.1产品SearchResult结果记录类522

16.2.2产品 Search Results结果集合类524

16.2.3产品SearchRequest检索请求类526

16.3数据库访问SearchResultDAO类实现527

16.3.1数码库访问类接口定义527

16.3.2数码库访问类实现528

16.4 Lucene索引检索SearchService类实现530

16.4.1索引检索类接口定义530

16.4.2索引检索类实现531

16.5前台Web页面设计536

16.5.1数码垂直搜索主页面main.jsp536

16.5.2数码搜索手机产品图片的显示542

16.5.3手机产品详细信息页面detail.jsp543

16.6实例中的问题与功能扩展546

16.7小结548

附录Lucene 2.4更新内容549

F1 IndexWriter的构造函数549

F2 IndexWriter的init方法550

F3 IndexWriter中的flush、commit和close552

F4 Lucene2.4中的Segment553

F5 IndexCommit和IndexDeletion-Policy555

F6 IndexWriter中的add-Document558

F7 DocumentsWriter类的add-Document方法559

F8 DocumentsWriter的索引链562

热门推荐