传智播客——lucene全文检索技术

今天是汤阳光老师的lucene,说汤阳光为老师,我感到压力很大,明明就是自己的同龄人,人家已经是技术大神,自己还是超级大菜鸟。

一 lucene学完我们能干嘛
把最想要的资源快速的检索出来。
全文检索不同于数据库搜索:
1,匹配效果:如搜索ant会搜索出planting。
2,查出的结果没有相关度排序,不知道有用的结果在哪一页。
3,搜索速度达不到毫秒级的要求。
相关度排序说明:搜索结果列表中越靠前的,一般就是最符合我们所预期的结果。回想使用baidu的时候,一般在第1页中就可以找到想要的文章,越往后翻就越离题。这是因为结果列表是按照相关度排过序的。
不过我们学这个可不是为了进百度谷歌,或者自己搞搜索引擎,而是我们主要是做系统内搜索(或叫做站内搜索),即对一个系统内的资源进行搜索。如BBS、Blog中的文章搜索,网上商店中的商品搜索等。实例有ItcastBBS、Eclipse等。一般不做互联网中资源的搜索,因为不易获取与管理海量资源。
二 全文检索的定义
信息检索:从信息集合中找出与用户需求相关的信息。信息类型有:1,文本(或可以转为文本),如txt, html, pdf, word等。2,多媒体,如音频、视频、图片等。
全文检索:是指把用户的查询请求和全文中的每一个词进行比较,不考虑查询请求与文本语义上的匹配。全文检索特点:1,只关注文本。2,不考虑语义。(如搜索“中国的首都是哪里”,如下图所示)
搜索的目的是为了在大量的信息中发现自己感兴趣的信息。但是,当有了足够的资料(比如网页、Word文档、Pdf文档,或数据库中的资料等)之后,并不能立即开始搜索,在此之前,必须先对信息建立索引。
就好比在图书馆里存放着大量书籍,当我们想查找关于某个主题的书籍时,不能一本一本的翻阅,而是要先查阅书籍的索引卡,根据索引卡上的信息找到相应的书籍。所以,当一本书进入到图书馆后,最重要的工作就是要马上建立索引卡。同样,对于我们所拥用的信息,也需要为其建立索引。
建立索引,就是对待搜索的信息进行一定的分析,并将分析结果按照一定的组织方式存储起来,通常将这些结果存储在文件中。存储分析结果的文件的集合就是索引。在查询时,先从索引中查找,由于索引是按照一定的结构组织的,所以查询的速度非常快。
三 索引文件的检索与维护
词汇表规模相对较小,文档集合规模较大。进行检索时,先从检索词汇表开始,然后找到相对应的文档。如果查询中仅包含一个关键词,则在词汇表中找到该单词,并取出他对应的文档就可以了。如果查询中包含多个关键词,则需要将各个单词检索出的记录进行合并。
维护倒排索引有三个操作:插入、删除和更新文档。但是更新操作需要较高的代价。因为文档修改后(即使是很小的修改),就可能会造成文档中的很多的关键词的位置都发生了变化,这就需要频繁的读取和修改记录,这种代价是相当高的。因此,一般不进行(真正的)更新操作,而是使用“先删除,后创建”的方式代替更新操作。
四 luence的
HelloWorld
发Lucene的资料,jar包等。
1. Lucene介绍
Lucene的主页为:http://lucene.apache.org/。有很多应用程序使用Lucene来提供全文检索的功能,如我们经常使用的Eclipse的帮助子系统,就是使用Lucene实现的。(在第一次使用的时候,会有一个进度条,那是在创建索引)。
2.
HelloWorld程序有两个操作:创建索引与进行搜索。
3 添加Lucene环境
 添加jar包 
 lucene-core-2.4.0.jar(核心);
 contrib/analyzers/lucene-analyzers-2.4.0.jar(分词器);
 contrib/highlighter/lucene-highlighter-2.4.0.jar(高亮器);
学习总结:lucene全文信息检索,看起来超拉风,但学起来也就那么回事。在我看来java各种技术都是一个德行,听名字牛逼到吓死牛,真一搞也就几个jar包几个类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值