您现在的位置:首页 >> 技术架构 >> 搜索引擎 >> 内容

全文检索 Lucene3学习--Java免费学习网

时间:2015-1-22 20:08:43

  核心提示:1.Lucene的jar包下载:http://www.apache.org/dyn/closer.cgi/lucene/java/2.什么是信息检索系统,什么是全文检索系统 我们在很多地方都可以看到搜...

1.Lucene的jar包下载:http://www.apache.org/dyn/closer.cgi/lucene/java/
2.什么是信息检索系统,什么是全文检索系统
    我们在很多地方都可以看到搜索功能,比如:1,Word中的搜索功能(当前使用的就是)。按“Ctrl+F”就可以使用查找的功能,查找出指定的字符串。搜索的范围是当前文档。2, Windows系统中的有搜索功能:打开“我的电脑”,按“F3”就可以使用查找的功能,查找指定的文件或文件夹。搜索的范围是整个电脑中的文件资源。3,Eclipse中的帮助子系统:点击Help?Help Contents,可以查找出相关的帮助信息。搜索的范围是Eclipse的所有帮助文件。4,搜索引擎,如Baidu或Google等。可以查询到指定的网页、PDF、Word文档、PPT、图片、视频等。查询范围是整个互联网中的资源。
     信息检索:从信息集合中找出与用户需求相关的信息。以上的例子都属于信息检索。
信息有不同的类型:1,文本内容的类型,如TXT、HTML、PDF、Word文档等。我们搜索的是其中的文字内容。2,多媒体等类型,如音频、视频、图片等。(注意,音乐搜索不是按文件名搜索。我以前的Moto手机上有一个音乐雷达的软件。对着手机的麦克风放一段音乐,他就可以联网找出这段音乐的资料,如名称,歌手等)。我们要学习的全文检索只关注文本。也就是说,只要可以转为文本的就可以.

http://www.javalearns.com/
     我们在百度中搜索时,输入要查询的字符串,点击搜索按钮,就可以得到结果了。   比如:输入“中国的首都是哪里”出现的结果不是“北京”,而是包含有这段话的那些网页。这也是全文检索的特点:不处理语义。
     全文检索(Full-Text Retrieval)是指以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标。关于全文检索,我们要知道:1,只处理文本;2,不处理语义;3,搜索时英文不区分大小写;4,结果列表有相关度排序。在信息检索工具中,全文检索是最具通用性和实用性的。
全文检索不同于数据库的SQL查询。(他们所解决的问题不一样,解决的方案也不一样,所以不应进行对比)。1,匹配效果:如搜索ant会搜索出planting。2,查出的结果没有相关度排序,不知道有用的结果在哪一页。3,全文检索的速度大大快于SQL的like搜索的速度。对于其中的第2条,是指的相关度排序:搜索结果列表中越靠前的,一般就是最符合我们所预期的结果。想一想在使用baidu的时候,一般在第1页中就可以找到想要的文章,越往后翻就越离题。这是因为结果列表是按照相关度排过序的。
全文检索和数据库应用最大的不同在于:让最相关的头100条结果满足98%以上用户的需求。
3.学完后能做什么
   我们主要是做站内搜索(或叫系统内搜索),即对一个系统内的资源进行搜索。如BBS、BLOG中的文章搜索,网上商店中的商品搜索等。实例有BBS、Eclipse等。一般不做互联网中资源的搜索,因为不易获取与管理海量资源(专业搜索方向的公司除外)。
所以学完后,我们就可以为自已的系统增加全文检索的功能。

http://www.javalearns.com/
4.基础概念
   要先明白概念,再学习相应实现(框架)。
    全文检索就如同ORM,是一个概念。ORM的框架有很多种:Hibernate、TopLink、iBatis等,我们之前学习的是Hibernate。同样的,全文检索领域中也有很多种框架,Lucene就是其中的一个用开源的全文检索框架。
Lucene的主页为:http://lucene.apache.org/。有很多应用程序使用Lucene来提供全文检索的功能,如我们经常使用的Eclipse的帮助子系统,就是使用Lucene实现的。(在第一次使用的时候,会有一个进度条,那是在创建索引)。
本文档中所使用的Lucene为3.0.1的版本。以下两小节是Lucene中重要的概念。
5.全文检索的工作流程(准备知识)
   如果信息检索系统在用户发出了检索请求后再去互联网上找答案,根本无法在有限的时间内返回结果。所以他要先把要检索的资源的集合放到本地(使用某种特定的结构存储),称为索引库。我们每次搜索都是在本地的索引库中进行(需要保证数据集合与索引库的一致性)。由于索引库是按照一定的结构组织的,所以查询的速度非常快。
   所以对于全文检索功能的开发,要做的有两个方面:1,维护索引库中的数据。2,在索引库中进行搜索。
   对于我们的应用程序,信息集合一般就是数据库表中的记录(文章,贴子、新闻等)或文件系统中的文件等,这些资源都可以方便、简单的获取到(使用SQL查询或遍历文件夹)。对于搜索引擎,搜索范围是整个互联网中的资源,这些资源就需要专门的工具来获取了,我们把实现这个功能的软件叫做爬虫或蜘蛛,或称做网络机器人。爬虫在互联网上访问每一个网页并把把其中的内容传回本地服务器。

Java免费学习  Java自学网  http://www.javalearns.com

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
  • 上一篇:索引库中搜索
  • 下一篇:没有了
  • 共有评论 0相关评论
    发表我的评论
    • 大名:
    • 内容:
    本类推荐
    • 没有
    本类固顶
    • 没有
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号