数据库

首页 » 常识 » 预防 » ApacheLucene简介
TUhjnbcbe - 2024/11/5 12:46:00

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只

1
查看完整版本: ApacheLucene简介