`
xitonga
  • 浏览: 585925 次
文章分类
社区版块
存档分类
最新评论

全文检索Lucene入门之lucene简介

 
阅读更多

一、简介

Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。

目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行索引和搜索。比如你要对一些 HTML 文档,PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的,然后将转化后的内容交给 Lucene 进行索引,然后把创建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引文件上进行查询。不指定要索引的文档的格式也使 Lucene 能够几乎适用于所有的搜索应用程序。

二. 为什么要使用全文检索技术

在网站、论坛或者应用系统中,我们经常需要用到站内搜索/论坛内容搜索的功能来查找指定的关键字。在网站的后台存储中,信息可能存储的地方主要有:数据库表,HTML静态页面文件,word、pdf、excel、ppt、txt等文件中。在企业的网站或者应用系统中,大量的动态信息是存储在数据库中的,例如公文信息、新闻内容、知识库、商务信息等都是存储在数据库表中的。如果我们使用数据库的like‘%关键字%’这种方式查找信息显然不可取,因为数据库对于like‘%关键字%’这种查询模式,数据库索引是起不到效果的,这样会严重影响到查询的效率。所以对于数据库的全文检索,也应使用分词技术,在增加表记录的时候,将相关字段采用Lucene的分词技术增加到索引库中,并同时将记录的ID和对应的访问链接也同时加入到索引库中,我们就可以在查询关键字的时候,将对应的信息访问连接同时查找出来,这样就起到全文检索的效果。


三:全文检索的过程

全文检索的过程分为2大过程:索引创建(indexing)和搜索索引(Search)

1、索引创建:就是将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。(结构化数据:结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据; 非结构化数据:包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等)

2、搜索索引:就是将得到用户的查询请求,搜索创建的索引,然后返回结果的过程。

下图是基于Lucene搜索引擎的全文检索过程



四:基于Lucene的全文检索体系结构和技术





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics