1 / 22
文档名称:

lucene的原理.doc

格式:doc   大小:48KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

lucene的原理.doc

上传人:文库旗舰店 2019/10/11 文件大小:48 KB

下载得到文件列表

lucene的原理.doc

相关文档

文档介绍

文档介绍:Lucene的原理本文主要通过三个方面来介绍lucene:认识lucene,通过lucene建立索引和对已经建立好的索引进行搜索,文章内容大部分参考“IBMdeveloperwords中国”,我想这篇文章对于要学****或者已经接触过Lucene的朋友是是一个比较好的资料。Lucene是一个基于java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Luene是一个开源,高度可扩展的搜索引擎库。开源从ApacheSoftwareFoundation获取。您可以Lucene用于商业和开源应用程序。Lucene强大的API主要关注文本索引和搜索。它可以用于为各种应用程序构建搜索功能。目前已经有很多应用程序的搜索功能是基于lucene的,比如Eclipse的帮助系统的搜索功能,电子邮件客户端,邮件列表,web搜索,数据库搜索等等。Wikipedia,TheserverSide,jGuru和LinkeIn等网站都是用了lucene。Lucene能够为文本类型的数据建立索引,所以你只要把你的数据格式转化为文本格式,lucene就能对你的文本进行索引和搜索。比如你要对一些html文档,PDF文档进行搜索的话,你就要先把html文档和PDF文档转化为文本格式,然后把转化的文本交给lucene索引,然后把建好的索引存放在内存或者磁盘中,最后根据用户输入的查询条件在索引上进行查询。不指定要索引的文档也使lucene能够几乎是用于所有的搜索应用程序。到2009年七月30日,:1,拥有强大,有效,准确的搜索算法2,计算每个文档匹配给定查询的分数,并根据分数返回最相关的文档3,支持许多强大的查询类型,比如:PhraseQuery,WildcardQuery,RangeQuery,FuzzyQuery,BooleanQuery等。4,支持解析人们输入的丰富查询表达式5,允许用户是用定制的排序,过滤和查询表达式解析扩展搜索行为6,使用基于文件的锁定机制保护并发索引修改7,允许同时搜索和编制索引索引和搜索索引是现代搜索引擎的核心,建立索引的过程就是把源数据处理成非常方便查询的索引文件的过程。为什么索引这么重要呢,试想你现在要在大量的文档中搜索含有某个关键词的文档,那么如果不成立索引的话你就需要把这些文档顺序的读入内存,然后检查这个文章中是否含有要查找的关键词,这样的话就会耗费非常多的时间,想想搜索引擎可能是在毫秒级的时间内查找出要搜索的结果的。这就是由于建立索引的原因,你可以把索引想象成这样的数据结构,它能够使你快速的随即访问存在索引中的关键词,进而找出这个关键词所在的文档。Lucene采用的是一个称为反向索引(invertedindex)的机制。反向索引就是我们维护的一个词/短语表。这样在用户输入查询条件的时候,就能够非常快的得到搜索的结果。对文档建立好索引后,就可以在这些索引上面进行搜索了。搜索引擎首先要所搜索的关键词进行分析,然后再建立好的索引上进行查找,最终返回和用户输入的关键词相关联的文档。Lucene的软件包分析Lucene的软件包发布形态是一个jar文件,下面我们分析一下这个jar文件里面的主要的java包,做一个初步的了解。.,比如Document,Field,这样每一个文档最终封装成一个对应的document对象。.,因为文档在建立索引之前必须要进行分词。所以这个包的作用可以看成是为建立索引做准备工作。.,这个里面有两个基础的类:IndexWriter和IndexReader,其中IndexWriter是用来创建索引并添加文档到索引中的,IndexReader是用来删除索引中的文档。.,比如IndexSearcher和Hits。IndexSearcher定义了再指定的索引上搜索的方法,Hits是用来保存搜索得到的数据第二部分:建立索引为了对文档进行索引,lucene提供了五个基础的类,它们分别是Document,field,IndexWriter,Analysis,Directory。下面我们分别介绍这五个类的用途:DocumentDocument是用来描述文档的,这里的文档可以指一个html页面,一封电子邮件,或者是一个文本文件。一个Document由多个Field对象组成。可以把一