登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』Lucene搜索引擎开发进阶实战(从实用的角度出发,理论与实战相结合,配以大量的案例,深入探讨Lucene搜索引擎开发的实现方法和技巧)

書城自編碼: 2509338
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 成龙 著
國際書號(ISBN): 9787111488422
出版社: 机械工业出版社
出版日期: 2015-01-01
版次: 1 印次: 1
頁數/字數: 219/
書度/開本: 16开 釘裝: 平装

售價:NT$ 490

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
产业政策的选择及其经济后果
《 产业政策的选择及其经济后果 》

售價:NT$ 722.0
战争的幽灵
《 战争的幽灵 》

售價:NT$ 493.0
西洋镜:中华考古图志
《 西洋镜:中华考古图志 》

售價:NT$ 1053.0
学会当领导:优秀员工的晋升之路
《 学会当领导:优秀员工的晋升之路 》

售價:NT$ 364.0
目的行为论导论——刑法体系的新图景(增补第4版·中文增订版)(当代世界学术名著)
《 目的行为论导论——刑法体系的新图景(增补第4版·中文增订版)(当代世界学术名著) 》

售價:NT$ 381.0
浮沉:里亚布申斯基家族兴衰史
《 浮沉:里亚布申斯基家族兴衰史 》

售價:NT$ 549.0
Android自动化测试实战:Python+Appium +unittest
《 Android自动化测试实战:Python+Appium +unittest 》

售價:NT$ 503.0
郭建龙亚洲三部曲:印度、穿越蒙古国、三千佛塔
《 郭建龙亚洲三部曲:印度、穿越蒙古国、三千佛塔 》

售價:NT$ 1305.0

建議一齊購買:

+

NT$ 540
《 Spark大数据处理技术 》
+

NT$ 711
《 精通AngularJS 》
+

NT$ 531
《 CSS高效开发实战—CSS 3、LESS、SASS、Bootstrap、Foundation 》
+

NT$ 538
《 Hadoop高级编程——构建与实现大数据解决方案 》
+

NT$ 428
《 这就是搜索引擎:核心技术详解 》
編輯推薦:
《Lucene搜索引擎开发进阶实战》
从实用的角度出发,理论与实战相结合,配以大量的案例,深入探讨Lucene搜索引擎开发的实现方法和技巧;
收录网上与搜索引擎开发相关的各类问题和误区,并给出解决办法,指导读者在实战中提升技能。
內容簡介:
《Lucene搜索引擎开发进阶实战》结合笔者的实际开发经验,总结了一些新的开发技巧和开发思路,并对网上流传的一些错误技术点和代码进行验证,同时给出正确的思路,旨在给开发者提供一本清晰、完整、易懂的指导手册。本书既可为零起点的Lucene初学者提供系统全面的学习指导,也可帮助有相关经验的开发者解决在开发过程中遇到的一些难题和疑惑。
《Lucene搜索引擎开发进阶实战》共12章,分为四部分,第一部分首先介绍网络爬虫和Web搜索,然后讲述Lucene的概念和架构;第二部分通过一个小实例,并结合为文本创建索引来讲解其中的一些方法和类;第三部分主要基于数据库搜索创建搜索引擎实例,阐述技术疑难问题,讨论如何建立工程类的索引,如何使用分词技术等,并对创建索引过程中的jar包进行解析,然后介绍搜索引擎开发中关键的查询方法和高亮显示技术,以及查询结果排序和词频统计的相关知识,最后概述性能优化(包括代码优化、索引优化以及备份和恢复)等相关知识;第四部分总结目前的一些技术,并对未来的一些技术发展进行展望。
《Lucene搜索引擎开发进阶实战》既可作为面向计算机工程、软件工程、信息工程等IT相关学科的信息安全实训教材,还可作为信息安全相关人员的培训教材。
關於作者:
成 龙 软件开发工程师,从事Lucene相关搜索引擎开发多年,曾在医药、教育等行业参与开发多个搜索引擎类项目,目前在进行一个搜索引擎项目的优化和二次开发工作,具有丰富的搜索引擎方向项目开发经验。工作之余也喜欢钻研疑难问题,并在实践验证后形成文档或经验与读者分享。
目錄
前 言
第1章 网络爬虫策略
1.1 信息时代的飞跃
1.1.1 搜索引擎的出现
1.1.2 搜索之网络爬虫的由来
1.2 网络爬虫
1.2.1 网络爬虫的基础框架
1.2.2 网络爬虫的策略分析
1.2.3 暗网获取
1.2.4 分布式爬虫
1.3 实现Web搜索
1.3.1 Web搜索的概念
1.3.2 经典小实例展示
1.4 疑难解析
1.4.1 本节技术概念
1.4.2 实例疑难解析
1.5 实践心得
1.5.1 如何快速实现Web搜索
1.5.2 如何解决和发现代码错误
1.6 本章小结
第2章 搜索引擎技术中的Lucene
2.1 Lucene到底是什么
2.1.1 Lucene的由来
2.1.2 Lucene的概念
2.1.3 Lucene的适用范围
2.2 Lucene的架构
2.2.1 Lucene=“完整的搜索程序”吗
2.2.2 搜索和索引组件介绍
2.2.3 其他模块
2.2.4 Lucene与应用的完美结合
2.3 Lucene小程序
2.3.1 创建索引
2.3.2 搜索索引
2.4 实践心得
2.4.1 实现创建和搜索的技术解析
2.4.2 实例创建过程中的个人心得
2.5 本章小结
第3章 创建索引实例
3.1 开发前的软硬件准备
……
第4章 初建索引
第5章 分词技术详解
第6章 jar包应用详解
第7章 构建应用程序的实现
第8章 查询方法的实现
第9章 高亮显示技术
第10章 结果排序和词频统计
第11章 开发中的性能优化概述
第12章 对瓶颈技术的未来设想
附录A Java安装详解
附录B SQL Server 2005安装详解
附录C MyEclipse 安装详解
附录D Lukeall在本书中的应用
附录E MyEclipse快捷键详解
內容試閱
第1章
网络爬虫策略
可能有不少读者常听身边的朋友谈到搜索引擎和网络爬虫,但他们并不知道搜索引擎的由来,不了解搜索引擎的概念是什么,也不知道网络爬虫为何物。事实上,在日常生活中,我们常会用到这些知识,比如说,大多数人习惯了用“百度”或者“Google”来查询任何我们想知道的内容和知识,这其中就用到了搜索引擎和网络爬虫,那它们是怎么做到的?你是否觉得很神奇且深不可测呢?带着这些疑问,让我们一起进入到这个神秘的世界中去。本章将从一些基础概念入手,从认识爬虫开始,进而认识搜索引擎这个新兴的技术领域,逐步深入,在了解概念的基础上,本章还会展示两个经典的小实例,希望能为后续学习Lucene打下理论基础。
1.1 信息时代的飞跃
1.1.1 搜索引擎的出现
细心的读者可能会发现,其实很多新名词的产生,都伴随着一个美好的,或是感人的,或是幽默诙谐的,给人深刻印象的故事。那么搜索引擎这个词的诞生,是否也是如此呢?
根据全国科学技术名词审定委员会审定,搜索引擎引入的中文名称为“搜索引擎”,其英文名称为“Search Engine”,并且该委员会还给它下了一个科学而简短的定义:万维网环境中的信息检索系统(包括目录服务和关键字检索两种服务方式)。那么搜索引擎到底是怎么发展而来的呢?这里将从它的起源故事讲起。故事发生在当今以北美“浪漫之都”著称的典型英法双语城市蒙特利尔(Montreal)(加拿大)的麦吉尔大学(University of McGill)校园内。那还是20世纪初期,当时还没有万维网(World Wide Web,WWW),共享文件的主要工具是FTP(文件传输协议)软件。为了共享文件,必须要有FTP服务器,同时,为了检索到FTP数据,还必须要有FTP的客户端,那时候很多数据都是零散分布的,尽管Internet能提供文件信息服务,但是用户缺乏直接查询FTP文件地址的工具,麦吉尔大学(University of McGill)计算机学院的三名学生(Alan Emtage、Peter Deutsch、Bill Wheelan)为了方便查询FTP文件的所在地址,于是想到了开发一个可以用文件名查询文件的系统,于是Archie系统诞生了。Archie系统实现了自动索引Internet上匿名的免费FTP文件信息的功能,并提供了一种根据文件名称查询文件所在FTP地址的方法。尽管在搜索过程中,它要求用户必须输入精确的文件名,才会告诉用户哪一个FTP地址可以下载;尽管它没有机器人(Robot)程序,只能搜索FTP文件资源,但它的出现,实现了自动搜集信息资源、建立索引、提供检索服务的功能,开启了搜索引擎时代。Archie,毫无疑问,成为了搜索引擎的鼻祖。
Archie系统的产生,在全球的信息时代浪潮中引起了极大的反响,深受大家的欢迎。与此同时,在它的影响和启发下,Nevada System Computing Services大学于1993年开发了一个Gopher(Gopher FAQ)的搜索工具Veronica(Veronica FAQ),Veronica提供了大量资源的服务器查询功能,它可以实现标题关键字的查询,在Veronica中,用户可以用包含布尔关键字表达式、特殊的Veronica指令等方式通过Gopher客户访问软件进行查询。不再像Archie系统一样必须要一个完整的文件名才能完成搜索。而且它除了能查询本地的大量数据外,还能通过其他类型的信息服务器(如WWW服务器、用户档案、远程访问信息服务器等)进行信息的查询,搜索结果的列表包含了信息项的标题所指定的关键字,同时结果菜单可以像任何其他工具菜单一样自由地浏览,极大地拓宽了查询的宽度和广度,也给用户的查询带来了极大的方便。Veronica发展至1995年1月,已经提供了5057个Gopher服务器索引,其中包括了3905个WWW服务器和约1000个Telnet服务器,几乎每一个项目都包含在了由Gopher服务器提供的索引中,尽管WWW服务器当时的内容不是详尽的索引,但这些服务器都引用着一些Gopher服务器菜单。
但在WWW服务器出现且凸显方便和快捷后,Gopher服务器失去了昔日的辉煌,它只能提供文本查询,已不能满足越来越现代化的信息发展需求,逐渐地,Gopher服务器淡化出了人们的视线,与此同时,随着信息时代的快速发展,搜索引擎的发展之路也是日新月异,发生着翻天覆地的变化。对于当时的编程者而言,Robot(机器人)无疑是一个很大的话题,Computer Robot指的是一个能以人类无法达到的速度不断重复执行某项任务的自动程序,由于Robot程序能像蜘蛛一样在网络间爬来爬去,因此,也就出现了搜索引擎的Robot程序——spider程序。1993年,基于实现Robot的想法,Matthew Gray开发了Worldwide Web Wanderer,它也成为了世界上第一个Spider程序,目的是为了追踪互联网发展规模。起初只是简单地统计互联网上的服务器数量,随着时间的推移,它逐渐发展成了能够捕获网址(URL)的工具。最早的现代化搜索引擎出现在1994年。当年4月,斯坦福大学(Stanford University)的两名博士生,美籍华人Jerry Yang(杨致远)和David Filo共同创立了超级目录搜索工具Yahoo!。Yahoo!最初只支持简单的数据库搜索,且需要手工输入数据,很多人都认为其不算搜索引擎,只是一个可搜索的目录而已,但随着Yahoo!的发展,它成功地将搜索引擎的概念注入人心,也是从那个时候开始,搜索引擎进入了一个飞速发展的时代。同样是在1994年初,华盛顿大学(University of Washington)的学生Brian Pinkerton开始了他的小项目WebCrawler,成为了互联网上第一个支持搜索内容全部为文字的全文搜索引擎。它打破了之前只能通过URL和摘要搜索的局限,使得搜索引擎越来越完善。同年7月,卡内基·梅隆大学(Carnegie Mellon University)的Michael Mauldin将spider程序植入其索引程序,创建了Lycos,其最突出的特点是实现了大数据量搜索,同时也实现了相关性排序,还提供了前缀匹配和字符相近限制,Lycos成为第一个实现了在搜索结果中使用网页自动摘要的搜索工具。1994年底,Infoseek出现了,它提供了友善的界面和大量附加功能,它的出现和发展,是搜索引擎发展史上重要的里程碑。
随后,搜索引擎稳步而快速地发展。1995年,华盛顿大学的两名硕士研究生Eric Selberg和Oren Etzioni共同开发了Metacrawler,成就了一种新搜索引擎形式——元搜索引擎(A Meta Search Engine Roundup)。在该搜索引擎中,用户提交一次搜索请求,元搜索引擎便会对其进行转换处理,并提交给多个独立搜索引擎,然后将查询结果返回,再集中处理后返回给用户。同年12月,美国DEC公司正式发布AltaVista。AltaVista,实现了自然语言的搜索,成为了第一个实现高级搜索语法的搜索引擎(如AND、OR、NOT等)。用户可以通过AltaVista搜索新闻组的内容并从互联网上获得文章,还可以搜索图片名称中的文字、Titles、Java applets和ActiveX objects。AltaVista也是第一个支持用户自己向网页索引库提交或删除URL的搜索引擎,且能在24小时内上线。它还提供了一个有趣的功能,即搜索有链接指向某个URL的所有网站。在面向用户方面,AltaVista也提供了更多更加人性化的界面,大大提高了用户兴趣,这些功能,也被其他搜索引擎广泛应用。1997年,AltaVista发布了一个图形演示系统LiveTopics,帮助用户从成千上万的搜索结果中找到想要的内容。随后搜索引擎以更加惊人的速度快速发展,同样是在1997年,出现了Northernlight搜索引擎,同时还出现了现在广为人知的Google。2006年,Google宣布其中文名为“谷歌”。之后,随着搜索引擎技术的不断完善和成熟,中国也出现了搜狐、百度、IG、爱问等备受大家喜爱的搜索引擎。
搜索引擎的出现和发展,无疑成为了信息革命中一次重要的革命。它的发展带我们领略了搜索引擎的巨变和完善的过程,也给我们的日常生活带来了方便,对现代化的生活来讲,搜索引擎已经深入千家万户,成为了人们必不可少的使用工具之一,脱离了它,似乎生活也失去了光彩。搜索引擎的发展历史是有趣的,更多详细的发展历史,这里就不作详细的讲解了,有兴趣的读者,可以去参照相关的文献。
关于spider(爬虫)程序,相信也有不少人想知道它的历史和发展吧?下节将一起来回顾这个有趣的发展。
1.1.2 搜索之网络爬虫的由来
1.?有趣的小故事
上节中提到过Spider程序,其实Spider只是个别爬虫的名称而已,并不能指代网络爬虫。网络爬虫也叫网络蜘蛛。网络蜘蛛即Web Spider,是一个很形象的名字。如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。平时人们更喜欢称其为网络爬虫,本章后续的内容中,也都会称其网络爬虫。
其实说到网络爬虫,又不得不说搜索引擎,因为网络爬虫的出现,和搜索引擎有着密不可分的关系。搜索引擎真正意义上的兴起,也是源于网络爬虫程序的出现。下面,一起来简单地分享一下这个有趣的发展史。搜索引擎自动从因特网搜集信息,经过有效的整理,提供给用户进行查询。从1990年初开始,搜索引擎逐渐成为人们生活中必不可少的一部分,它经历了太多技术和观念的变革。从1994年开始,逐渐诞生了雅虎、谷歌、百度等一系列搜索引擎公司。那时候还没有万维网,人们需要手工到蜘蛛程序中去对网页进行搜索,但随着信息时代的不断发展,网页数量、数据信息量越来越大,搜索的时间也越来越长,如何缩短时间快速找到答案,成为了人们研究的重点。
网络爬虫程序的出现,也标志着现代意义上的搜索引擎形成。它实际就是使用计算机实现了以前的手工搜索,但是它的速度会比手工快很多,能快速不间断地执行某项搜索任务。这种搜索技术就像蜘蛛一样在网络间爬来爬去,快速不间断地响应需求,所以,后来人们把它称作“蜘蛛程序”,由此,网络爬虫也就诞生了。
网络爬虫程序利用html文档之间的链接关系,在网页之间爬取(crawl),并将这些网页抓到系统中来进行分析,然后放入数据库中。从最初的统计服务器数量,到后来的抓捕网址,现代搜索引擎,也因为网络爬虫程序的不断完善和改进,有了快速的发展。
2.?小案例展示
经过前面初步的介绍,相信大家对网络爬虫有了一个概念上的认识和了解。下面将通过一个简单的Java小程序,来和大家一起分享网络爬虫的应用。需要说明一下,此Java程序的HttpClient包的版本是4.0.1,可能很多朋友都和笔者一样,之前用的是3.1的版本,这两个版本有一定的区别,具体将在本章的1.4节和大家分析探讨,此处暂不做详解。
这里先将编写这个小程序的步骤大致列举一下,如下所示:
(1)首先,创建一个HttpClient实例;
(2)接着创建HttpGet构造函数传入需要连接的地址;
(3)然后调用execute方法来执行实例;
(4)最后读取结果,释放连接,处理得到的内容。
是不是觉得比较抽象呢?来看一下具体实例代码,如下:
package Spider;
import java.io.IOException;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class test{
public static void mainString[] args { 构造函数
HttpClient httpClient = new HttpClient; 构造get方法
GetMethod getMethod = new GetMethod"http: wenku.baidu.comview45f2a35a804d2b 160b4ec0da?fr=prin "; 使用系统默认的恢复策略
这里使用的抓取地址是笔者的百度文库,里面也有很多类似的文章,欢迎大家阅读
getMethod.getParams.setParameterHttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler; 采用大家熟知的抓取方式,以下开始执行
try {
int statusCode = httpClient.executeMethodgetMethod;
if statusCode != HttpStatus.SC_OK {
System.err.println"获取失败: "
+ getMethod.getStatusLine;
}
获取
byte[] responseBody = getMethod.getResponseBody;
System.out.printlnnew StringresponseBody; 结果的有效输出
} catch HttpException e {
System.out.println"获取失败,请重新获取";
e.printStackTrace;
} catch IOException e {
e.printStackTrace;
} finally {
getMethod.releaseConnection;
}
}
}
执行后,我们可以看到结果(如图1-1所示)。

……

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.