1.搜索引擎的历史
萌芽:Archie、Gopher
起步:Robot(网络机器人)的出现与Spider(网络爬虫)
发展:xcite、Galaxy、Yahoo等
繁荣:Infoseek、AltaVista、Google和Baidu
2.什么是Lucene??
(1)Lucene是非常优秀的成熟的开源的免费的纯纯java语言的全文索引检索工具包。
全文检索:是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。
(2)Lucene是一个高性能、可伸缩的信息搜索(IR)库。InformationRetrieval(IR)library.它使你可以为你的应用程序添加索引和搜索能力。
(3)Lucene的作者DougCutting是资深的全文索引/检索专家,最开始发布在他本人的主页上,年10月贡献给APACHE,成为APACHE基金的一个子项目。
(4)Lucene是一个IR库而不是现成的产品,当然也不是Lucene的初识者常常认为的web爬行器。
3.全文搜索系统的结构
索引结构4.为什么使用lucene
(1)Lucene作为一个全文检索引擎,其具有如下突出的优点:
1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础
的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文
件。
2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针
对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,
达到优化的目的。
3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,
方便扩充新功能。
4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token
流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分
析的接口。
5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系
统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊
查询(FuzzySearch)、分组查询等等。
(2)开源,可扩展能力强,有各种语言版本,适合各种平台.
5.Lucene倒排索引原理
(1)假设有两篇文章1和2
文章1的内容为:TomlivesinGuangzhou,IliveinGuangzhoutoo.
文章2的内容为:HeoncelivedinShanghai.
(2)经过分词处理后
文章1的所有关键词为:[tom][live][guangzhou][live][guangzhou]
文章2的所有关键词为:[he][live][shanghai]
(3)加上“出现频率”和“出现位置”信息后,我们的索引结构为:
Lucene只