全文检索与Lucene.ppt
文本预览下载声明
Lucene 课程内容 第一章: lucene简介 第二章:入门实例 第三章:内建Query对象 第四章:分析器Analyzer 第五章: Query Parser 第六章:索引 第七章:排序 第八章:过滤 项目实践:构建一个简单的WEB搜索程序 第一章:Lucene简介 搜索引擎的历史 什么是Lucene 全文检索系统的结构 为什么使用Lucene Lucene倒排索引原理 Lucene Implementations 基于Lucene的搜索程序 Compass Nutch 开源搜索引擎列表 全球商用搜索市场 Heritrix介绍 课堂练习:Heritrix简单抓取任务的设置 搜索引擎的历史 萌芽:Archie、Gopher 起步:Robot(网络机器人)的出现与Spider(网络爬虫) 发展:Excite、Galaxy、Yahoo等 繁荣:Infoseek、AltaVista、Google和Baidu 什么是Lucene Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。 全文检索?是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。 Lucene是一个高性能、可伸缩的信息搜索(IR)库。 Information Retrieval (IR) library.它使你可以为你的应用程序添加索引和搜索能力。 Lucene的作者Doug Cutting是资深的全文索引/检索专家,最开始发布在他本人的主页上,2001年10月贡献给APACHE,成为APACHE基金的一个子项目。 /lucene/ Lucene是一个IR库而不是现成的产品,当然也不是Lucene的初识者常常认为的web爬行器 全文检索系统的结构 . 为什么使用Lucene Lucene作为一个全文检索引擎,其具有如下突出的优点: (1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。 (2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。 (3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。 (4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。 (5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search)、分组查询等等。 开源,可扩展能力强,有各种语言版本,适合各种平台, Lucene倒排索引原理 假设有两篇文章1和2文章1的内容为:Tom?lives?in?Guangzhou,I?live?in?Guangzhou?too.文章2的内容为:He?once?lived?in?Shanghai. 经过分词处理后????文章1的所有关键词为:[tom]?[live]?[guangzhou]?[i]?[live]?[guangzhou]????文章2的所有关键词为:[he]?[live]?[shanghai] 加上“出现频率”和“出现位置”信息后,我们的索引结构为: Lucene只关注文本的索引和搜索 Lucene Implementations Lucene implementations in languages other than Java: CLucene - Lucene implementation in C++ dotLucene - Lucene implementation in .NET Lucene4c - Lucene implementation in C LuceneKit - Lucene implementation in Objective-C (Cocoa/GNUstep support) Lupy - Lucene implementation in Python (RETIRED) NLucene - another Lucene implementation in .NET (out of date) Zend Search - Lucene implementation in the Zend Framework for PHP 5 Plucene - Luce
显示全部