首页>参考读物>计算机科学与技术>软件与程序设计

Lucene搜索引擎开发进阶实战
作者 : 成龙 著
丛书名 : 实战
出版日期 : 2015-01-08
ISBN : 978-7-111-48842-2
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 229
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书最大的特色是编者在实际开发过程中结合开发实例,总结出了一些新的开发技巧,整合了开发思路,并对以前一些错误的技术点和代码文章等进行了验证并更正说明。在将相关基础知识点和实际开发技术问题进行了归纳整理后,系统地从领域基础、行业基础等领域进行了分析,分享了个人经验分享。本书旨在给开发者提供一个清晰、完整、简洁易懂的指导手册和学习交流工具,让大家参与其中,共享开发的快乐!
全书共12章,首先是基础知识的引导性介绍(包括了1~2章),其中第1章通过简单介绍了网络爬虫和Web搜索,让大家对此有一个初步的认识和了解。第2章主要讲解了lucene的概念、架构认知,以及提供了一个小的程序让大家加深认识;接下来,第3章将为后面实例部分的讲解做一个铺垫的工作,其主要通过对文本进行索引,创建了一个小实例,并对其中的一些方法和类进行了介绍;从第4章开始将进入正题,将基于数据库搜索创建搜索引擎实例,并分析技术疑难问题。第4章建立了工程类的索引,进行详细的分析和解析;第5章则是细分内容,对创建索引中的分词技术独章论述,进行了分析;第6章对在创建索引过程中的jar包进行了解析;第7章继续深入,让索引技术走上了界面,成了应用程序的好帮手。第8章和第9章则是分别就搜索引擎中的很重要的两个关键技术—查询方法和高亮显示进行了详细的分析和介绍,提供了一个直观的认识和架构;第10章则承接前面的章节,介绍了查询结果排序和词频统计的相关知识,同时,第11章概述性地介绍了性能优化,包括代码优化,索引优化以及备份和恢复等相关知识。相信很多人通过以上的11章节,会对lucene创建搜索引擎的应用有一个初步且全面的认识和了解,而最后一章第12章将对目前的一些技术作了一个总结,对一些未来的技术发展作了一个展望,提供给了广大的学习者一个思考和学习进步的空间。
本书主要针对两类人群,一种是零起点的lucene初学者,提供了一个系统的架构性的学习思路和指导,解决在开发过程中遇到的一些难题和疑惑。更是给一些有相关经验的开发者,提供了一个共同交流和学习的平台,通过本书,能提供新的视觉和思路,大家共同迎战新的技术的挑战。

图书特色

从实用的角度出发,理论与实战相结合,配以大量的案例,深入探讨Lucene搜索引擎开发的实现方法和技巧
收录网上与搜索引擎开发相关的各类问题和误区,并给出解决办法,指导读者在实战中提升技能

封底:
随着信息时代的快速发展,搜索引擎的相关技术也越来越受到关注。各个领域都在争相引入和开发符合自身需求的搜索引擎,并投入大量人力、物力和财力来对其进行研究,从而寻找技术性的突破。对于开发人员来说,如何高效、顺利地实现搜索引擎开发,如何正确地应用搜索引擎开发符合需求的产品,如何快速地学习和提升自身的技能等是他们希望了解和掌握的内容。本书立足于这些疑问,通过系统化的概念引导,辅以开发实战案例,并结合一些代码片段,来帮助读者掌握并运用Lucene进行搜索引擎开发。

本书主要内容和特色:
结合笔者自身的开发经历对Lucene搜索引擎开发进行系统全面讲解,从基础到技巧,从概念到疑难解析,从现状到未来展望,循序渐进,逐层深入。
涵盖理论与实战内容,结合实践经验,整理开发思路,指导零基础的读者尽快入门,缩短其学习和开发时间,并快速把Lucene搜索引擎运用于实际工作。
不仅介绍实践中常见的开发实用技巧,还从思路和方法上给出详细的总结和归纳,同时给出大量实践案例。
针对网上流传的技术问题进行验证,对Lucene搜索引擎开发中的难点和疑点进行剖析,帮助广大Lucene爱好者少走弯路,学习到更多的知识。

前:
本书结合笔者的实际开发经验,总结了一些新的开发技巧和开发思路,并对网上流传的一些错误技术点和代码进行验证,同时给出正确的思路,旨在给开发者提供一本清晰、完整、易懂的指导手册。本书既可为零起点的Lucene初学者提供系统全面的学习指导,也可帮助有相关经验的开发者解决在开发过程中遇到的一些难题和疑惑。
全书共12章,分为四部分,第一部分首先介绍网络爬虫和Web搜索,然后讲述Lucene的概念和架构;第二部分通过一个小实例,并结合为文本创建索引来讲解其中的一些方法和类;第三部分主要基于数据库搜索创建搜索引擎实例,阐述技术疑难问题,讨论如何建立工程类的索引,如何使用分词技术等,并对创建索引过程中的jar包进行解析,然后介绍搜索引擎开发中关键的查询方法和高亮显示技术,以及查询结果排序和词频统计的相关知识,最后概述性能优化(包括代码优化、索引优化以及备份和恢复)等相关知识;第四部分总结目前的一些技术,并对未来的一些技术发展进行展望。

后:
成 龙 软件开发工程师,从事Lucene相关搜索引擎开发多年,曾在医药、教育等行业参与开发多个搜索引擎类项目,目前在进行一个搜索引擎项目的优化和二次开发工作,具有丰富的搜索引擎方向项目开发经验。工作之余也喜欢钻研疑难问题,并在实践验证后形成文档或经验与读者分享。

图书前言

随着互联网技术的发展,搜索引擎相关的应用也越来越普遍。很多开发人员开始不仅仅是关注如何在一个简单的页面中输入“厦深高铁开通”点击“百度一下”查询自己想要的结果了,而且对网页背后的搜索引擎技术产生了浓厚的兴趣,Lucene等一系列相关的搜索引擎原理和技术应用吸引了他们的目光。目前很多学校还没有专门开设搜索引擎相关的专业,随着市场需求越来越大,开发人员甚至需要从零基础开始去探索并应用此技术开发搜索引擎,众多企业、政府机关、学校等也纷纷借助此项技术开发出适合自身单位性质的搜索模块,进而为更便捷、更准确、更专业地获取资讯提供了更好的平台。
为什么写这本书
随着信息时代的快速发展,搜索引擎相关技术也越来越受到关注。小至个人,大至集团,甚至一些国家,都投入了大量的人力、物力和财力来研究相关技术,寻找技术性的突破,因此也导致了市场需求越来越大,很多公司都在寻求相关的技术人员来开发符合自身要求的搜索引擎。搜索引擎的广泛开发和使用,致使网上出现了越来越多的搜索引擎相关实例、说明及介绍,部分对此技术感兴趣的读者(特别是一些初学者)常会从别人的博客或者论坛中“挖掘”可用代码或文章,但由于未思考和验证,从而导致应用实例出现一大堆错误,这时,他们却不知道如何改正和完善,浪费了宝贵的时间。
目前市面上关于搜索引擎的书已有不少,比如很经典的《Lucene实战》,已经出版了第二版,主要是写给对搜索技术比较熟悉的开发人员的;《搜索引擎基础教程》,给读者提供了入门的基础知识,包括很多概念性的东西,但没有将进阶的系统性方法展示给读者。当有些读者急需进行开发时,他们需要一个系统性的方法,但找不到一本合适的书。此时,他们可能需要在了解概念的基础上掌握开发技巧,快速上手,而这正是笔者编写本书的出发点。
本书将通过系统化的概念进行引导,然后提供基础性开发的实战,最后深入分析一些重要代码的组成,帮助读者真正掌握搜索引擎开发技术。本书更重要的一个特点是,笔者将通过自己的开发经验给广大的读者提供一些经过实践验证的正确结论,以及个人在实践中的一些心得和体会,希望给大家带来触发和灵感。
本书面向的读者
有人可能会担心,我只是对Lucene搜索引擎技术有兴趣或略懂皮毛,不知是否能看懂这本书?如果你属于以下学习者中的任一类,那么恭喜你,你可以以本书作为参考,进行相关的学习和研究。
有Java基础,刚接触搜索引擎开发的在校学生和编程者
本书针对有Java基础,且刚接触搜索引擎的学习者(包括企业员工和在校学生),旨在提供一个持续的、能从基础知识着手并逐步深入学习的过程。让你轻松地面对基础问题和学习过程中遇到的难点,从而提高对搜索引擎的认知和实际应用能力,进入到一个相对比较深入的研究中去。
在Lucene搜索引擎开发过程中遇到疑问的编程者
书中内容包括笔者从切身的实战中不断领悟和总结出来的一些疑难解答。从笔者了解到的情况来看,部分初学者在遇到问题时,会去论坛或者别人的文章中寻找解决办法,但有时候,事与愿违,他们花费了不少时间,却没找到正确答案,没有找到问题的根结所在。而本书正好针对此类“疑难杂症”提供了代码和错误分析,旨在提供一个清晰的解决思路,在帮助他们找到方法的同时,也希望给开发人员提供新的灵感。
在探索搜索引擎中层技术的开发人员
笔者在书中提出了一些建设性的意见和方向,希望以书为媒介,与大家共同探讨和研究,从而发现新的问题,提出新的解决方案。
如何阅读本书
本书采用的编写模式是逐层深入,从基础,到技术,到疑点难点的剖析,其中最大的特色是笔者结合了自身的实战,笔者在实际的开发过程中结合开发实例,总结了一些新的开发技巧,整合了开发思路,更对以前一些错误的技术点和代码文章等进行了验证并更正说明。所以读者阅读时,只要按照本书的编排顺序,从基础知识逐层深入学习,从基础到疑难技术,就一定能在夯实基础的同时,很快掌握好知识。相信大家通过这个清晰、完整、简洁易懂的指导手册能更好地把此技术应用到实际工作中,享受开发的乐趣!
致谢
本书能够顺利完成且与大家如期见面,要感谢很多单位和个人。首先要感谢机械工业出版社,给予这样一次与大家分享和共同学习的机会,同时非常感谢杨绣国编辑,有她不断的帮助和支持,才能让这本书顺利完成。还要感谢在此书写作过程中给予我鼓励的家人和朋友,以及给予我技术帮助的同事,感谢此书的校对和审稿老师,最后还要感谢默默支持本书写作的人士。
搜索引擎本来就是一门新兴的技术,我和大家一样,也是在学习中不断提升。本书的内容源于自己的切身实践,在编写过程中,难免有不成熟和不完善的地方,衷心地希望能得到大家的支持,热忱地欢迎并期望广大的同行和学者能给予宝贵意见或建议。可以通过以下方式联系笔者:
电子邮箱:longer200707@126.com
博客地址:www.baidu.com/p/jisiwoa
微信二维码:

上架指导

计算机\程序设计

封底文字

随着信息时代的快速发展,搜索引擎的相关技术也越来越受到关注。各个领域都在争相引入和开发符合自身需求的搜索引擎,并投入了大量的人力、物力和财力来对其进行研究,从而寻找技术性的突破。对于开发人员来说,如何能高效地、顺利地实现搜索引擎开发,如何正确地应用搜索引擎开发符合需求的产品,如何快速地学习和提升自身的技能……则是他们希望了解和掌握的内容。本书立足于这些疑问,通过系统化的概念引导,辅以开发实战案例,以及对一些代码片段的深入分析,来帮助读者掌握并运用Lucene进行搜索引擎开发。
本书的主要内容和特色:
 结合笔者自身的开发经历对Lucene搜索引擎开发进行系统全面的讲解,从基础到技巧,从概念到疑难解析,从现状到未来展望,循序渐进,逐层深入。
 理论+实战,结合实践经验,整理开发思路,指导零基础的读者尽快上手,缩短其学习和开发时间,使其可快速运用于实际工作中,从而更好地发挥他们的价值。
 不仅介绍了实践中常见的开发实用技巧,更是从思路和方法上给出了详细的总结和归纳,同时给出了大量的实践案例。
 针对网上流传的技术问题进行了验证,对Lucene搜索引擎开发中的难点和疑点进行了剖析,帮助广大Lucene爱好者少走弯路,学习到更多的东西。

作者简介

成龙 著:暂无简介

图书目录

前 言
第1章 网络爬虫策略 1
1.1 信息时代的飞跃 1
1.1.1 搜索引擎的出现 1
1.1.2 搜索之网络爬虫的由来 4
1.2 网络爬虫 6
1.2.1 网络爬虫的基础框架 6
1.2.2 网络爬虫的策略分析 8
1.2.3 暗网获取 11
1.2.4 分布式爬虫 12
1.3 实现Web搜索 13
1.3.1 Web搜索的概念 13
1.3.2 经典小实例展示 13
1.4 疑难解析 18
1.4.1 本节技术概念 18
1.4.2 实例疑难解析 19
1.5 实践心得 19
1.5.1 如何快速实现Web搜索 19
1.5.2 如何解决和发现代码错误 20
1.6 本章小结 21
第2章 搜索引擎技术中的Lucene 22
2.1 Lucene到底是什么 22
2.1.1 Lucene的由来 22
2.1.2 Lucene的概念 23
2.1.3 Lucene的适用范围 23
2.2 Lucene的架构 24
2.2.1 Lucene=“完整的搜索程序”吗 26
2.2.2 搜索和索引组件介绍 27
2.2.3 其他模块  28
2.2.4 Lucene与应用的完美结合 29
2.3 Lucene小程序 29
2.3.1 创建索引 29
2.3.2 搜索索引 34
2.4 实践心得 35
2.4.1 实现创建和搜索的技术解析 36
2.4.2 实例创建过程中的个人心得 36
2.5 本章小结 36
第3章 创建索引实例 37
3.1 开发前的软硬件准备 37
3.1.1 开发语言和专业基础 37
3.1.2 开发环境基础 38
3.2 对文本文档进行索引 41
3.2.1 新建文本文档 41
3.2.2 基础的索引代码 43
3.2.3 索引结果 43
3.3 实例中用到的类和关键词 44
3.3.1 实例中涉及的类 44
3.3.2 实例中涉及的关键词 46
3.4 本章技术要点和关键点 51
3.4.1 本章技术要点 51
3.4.2 本章关键点 52
3.4.3 技术突破点 52
3.5 开发中的个人心得分享 53
3.6 本章小结 53
第4章 初建索引 54
4.1 建立数据库索引的前提和意义 54
4.1.1 建立数据库索引的前提 54
4.1.2 建立数据库索引的基本条件 55
4.1.3 建立数据库索引的意义 57
4.2 建立数据库索引实例 58
4.2.1 新建索引类 58
4.2.2 实例核心代码示例 66
4.3 实例中重要的工具:Luke 70
4.3.1 什么是Luke 70
4.3.2 Luke的作用 70
4.4 解决疑难问题的个人心得 71
4.4.1 多样化实例的参考 72
4.4.2 案例分析 74
4.5 SQL Server 2005、SQL Server 2008以及Oracle数据库的区别 75
4.6 本章小结 76
第5章 分词技术详解 77
5.1 分词的定义和意义 77
5.2 英文分词介绍 78
5.3 中文分词解析 80
5.3.1 中文分词的目的 80
5.3.2 中文分词的意义 80
5.3.3 中文分词的方法 82
5.4 实例的分词方法剖析 86
5.4.1 IKAnalyzer的诞生 86
5.4.2 IKAnalyzer的配置方法 86
5.4.3 IKAnalyzer的使用 88
5.5 分词技术的广泛应用 89
5.5.1 搜索引擎网站的分词技术应用 90
5.5.2 分词技术深入各个领域 91
5.6 实践见解 92
5.6.1 关于分词的问题 92
5.6.2 关于搜索引擎分词和查找的个人心得 93
5.7 本章小结 94
第6章 jar包应用详解 95
6.1 jar包的定义 95
6.2 基本的jar包介绍 96
6.2.1 连接SQL Server的jar包 97
6.2.2 Lucene常用的jar包 98
6.3 实例中的分词jar包IKAnalyzer3.2.8 98
6.3.1 概念 98
6.3.2 适用范围和基本配置要求 99
6.3.3 使用案例分析 100
6.4 实例中的其他jar包应用 102
6.4.1 实例包含的其他jar包 102
6.4.2 适用范围和案例分析 103
6.5 jar包的调用方法 103
6.6 扩展:如何生成jar包和运行jar包 104
6.7 实践分享 106
6.7.1 如何在自己的项目中灵活运用jar包 106
6.7.2 jar的路径问题 107
6.7.3 jar包中class文件的反编译 108
6.8 本章小结 109
第7章 构建应用程序的实现 110
7.1 建立实例的项目 110
7.1.1 src目录 110
7.1.2 webroot目录 116
7.2 详解扩展词典和停止词 121
7.2.1 为什么需要扩展词典和停止词 121
7.2.2 扩展词典的应用 122
7.2.3 停止词应用 122
7.3 应用程序测试 124
7.3.1 应用程序在MyEclipse下的调试 124
7.3.2 搜索结果的分页技术 125
7.3.3 实现界面搜索 129
7.4 开发过程中的疑难问题分享 129
7.4.1 停止词的准确应用 130
7.4.2 扩展词典问题 130
7.4.3 界面分页显示的实例分析 131
7.4.4 localhost与127.0.0.1的异同 131
7.4.5 src目录和webroot目录 132
7.5 本章小结 132
第8章 查询方法的实现 133
8.1 查询的概念和意义 133
8.1.1 搜索引擎实现查询的概念 133
8.1.2 搜索引擎查询的意义 136
8.2 查询的分类 136
8.2.1 完全匹配查询 136
8.2.2 模糊查询 137
8.2.3 多域查询 138
8.2.4 通配符查询 140
8.2.5 其他查询 140
8.2.6 组合查询 142
8.3 实例分析 142
8.3.1 完全匹配查询实例解析 142
8.3.2 模糊查询实例分析 143
8.3.3 多域查询实例分析 144
8.3.4 通配符查询实例分析 145
8.3.5 其他查询实例及分析 146
8.3.6 组合查询实例及分析 146
8.4 实践过程中的重难点解析 148
8.4.1 使用什么查询方法 148
8.4.2 模糊查询案例剖析 149
8.4.3 Occur.MUST与Occur.SHOULD 150
8.5 本章小结 150
第9章 高亮显示技术 151
9.1 高亮显示的概念和目的 151
9.1.1 高亮显示的概念 151
9.1.2 高亮显示的目的 152
9.2 高亮显示的模块介绍 152
9.2.1 高亮显示的步骤 152
9.2.2 高亮显示的重要模块 154
9.2.3 其他相关内容 155
9.3 高亮实现搜索结果 156
9.3.1 高亮显示的实例 156
9.3.2 高亮显示的搜索结果 159
9.3.3 高亮显示界面效果 161
9.4 高亮显示的应用 162
9.5 高亮显示的技术疑难分析 163
9.5.1 如何解决高亮查询结果显示不完全的问题 163
9.5.2 高亮显示的对应问题解析 164
9.6 本章小结 165
第10章 结果排序和词频统计 166
10.1 排序和词频统计概念 166
10.1.1 什么是搜索结果排序 166
10.1.2 搜索结果排序的意义 167
10.1.3 什么是词频统计 168
10.1.4 词频统计的意义何在 168
10.2 排序分类 169
10.2.1 根据域值排序 169
10.2.2 索引顺序排序 170
10.2.3 根据相关性排序 170
10.2.4 根据词频率排序 171
10.2.5 其他 172
10.3 实例分析 172
10.3.1 根据域值排序的实例解析 172
10.3.2 根据索引顺序排序的实例分析 173
10.3.3 根据相关性排序的实例分析 173
10.3.4 根据词频排序实例分析 175
10.3.5 其他排序方法实例分析 177
10.4 实践心得 178
10.4.1 查询结果排序的问题 178
10.4.2 关于词性处理的问题解析 181
10.5 本章小结 183
第11章 开发中的性能优化概述 184
11.1 代码的优化 184
11.1.1 什么是代码优化 184
11.1.2 代码优化的意义 185
11.1.3 如何实现代码的优化 185
11.2 索引优化 189
11.2.1 索引优化的目的 189
11.2.2 索引优化的方法和途径 189
11.2.3 索引优化的效果 192
11.3 索引的备份和错误修复 192
11.3.1 如何实现索引备份 193
11.3.2 恢复索引的实现 193
11.3.3 修复索引 194
11.4 本章小结 195
第12章 对瓶颈技术的未来设想 196
12.1 海量数据库资源搜索 196
12.1.1 什么是海量数据库 196
12.1.2 海量数据库资源搜索的现状和瓶颈 197
12.1.3 海量数据库搜索的未来设想 197
12.2 高亮显示查询结果的未来设想 199
12.2.1 高亮显示出现的意义 199
12.2.2 高亮显示目前现状 199
12.2.3 黄褪技术概述 200
12.2.4 对高亮显示查询结果的未来展望 200
12.3 搜索引擎开发的规范性约束 201
12.3.1 搜索引擎开发的现状 201
12.3.2 版本的控制 202
12.3.3 未来国际规范性约束的展望 202
12.4 本章小结 202
附录A Java安装详解 203
附录B SQL Server 2005安装详解 207
附录C MyEclipse 安装详解 213
附录D Lukeall在本书中的应用 215
附录E MyEclipse快捷键详解 218

教学资源推荐
作者: 谢满德 凌云 陈志贤 刘文强 张国萍 编著
作者: [美]Samuel P.Harbison Ⅲ,Guy L.Steele
作者: 刘燕君,刘振安,孙忱
参考读物推荐
作者: [瑞士]路易斯·汤斯顿(Lewis Tunstall),[瑞士]莱安德罗·冯·韦拉(Leandro von Werra),[法]托马斯·沃尔夫(Thomas Wolf) 著
作者: 包若宁,卜文远,傅鼎荃 等编著 张国强 审