阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Lucene:基于Java的全文检索引擎的简介

138次阅读
没有评论

共计 1949 个字符,预计需要花费 5 分钟才能阅读完成。

1、基于 Java 的全文检索引擎的简介

Lucene 不是一个完整的全文检索应用,而是一个 java 语言写的全文检索引擎工具包,他可以很方便的嵌入到各种应用系统中实现信息的全文检索功能。

2、全文检索实现机制

Lucene 的 api 输入输出结构很想数据库的表、记录、字段,因此很多传统的应用中的文件、数据库可以很方便的把数据映射到 Lucene 的存储结构中,我们可以把 Lucene 当成一个支持全文索引的数据库系统。

下面我们比较一下 Lucene 和数据库

Lucene                                                  database

索引数据源                    document(field1,field2….)..                            record(field1,field2…)..

| inder                                                      | sql:insert

lucene index                                          database index

|search                                                    |select

Hits(docuemnt(field1,field2…)..)                results(record(field1,field2…)..)

一个 document 有多个字段组成,是一个需要进行索引的单元,hits 查询结果集。

数据库索引能够大大的帮助我们提高查询的速度,而索引之所以相对查询起高校作用,原因就在于它是排好序的,对于检索系统来说核心是核心是一个排序问题。

数据的索引不是为全文索引设计的,所以在 sql 中使用 like % 进行模糊查询时,数据库的索引是不起作用的,对于需要对外提供高效服务的服务的服务器来说,这是个致命的危害。所以建立一个高效的检索系统的关键时建立一个与反向索引类似的机制,将数据源排序存储的同时,有另一个排好序的关键词列表,用于存储关键词和内容的映射关系。检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程,从而大大的提高了关键词查询到的效率,所以全文检索问题归结到第就是一个排序问题。

Lucene 最核心的特征是通过特殊的索引结构实现了传统数据库不擅长的全文索引机制。

3、Lucene 与数据库的模糊查询的简单比较:

索引:Lucene 将数据源中的数据通过全文索引一一建立反向索引。数据库对于 like 模糊查询而言,在数据检索时索引根本用不了的。

结果输出:Lucene 通过特别的算法,将匹配度最高的前 100 条结果集输出,结果集是缓冲式的小批量读取。而数据库返回所有的结果集,在匹配条目多的时候,需要大量的内存存放这些临时结果集。

从上面可以总结出:Lucene 和 database 最大的不同的在于让与用户查询的数据匹配的前 100 条结果满足 98% 以上用户的需求。

4、Lucene 的创新之处

大部分的搜索引擎都是用 B 树来维护索引,索引的更新会导致大量的 io 操作,Lucene 在实现中对此稍微做了改进,不是维护一个索引文件,而是在扩展索引的时候不断创建新的索引文件,然后定期的把这些小索引文件合并到原先的大的索引文件中,这样在不影响检索效率的前提下,提高了索引的效率。

Lucene 的详细介绍 :请点这里
Lucene 的下载地址 :请点这里

基于 Lucene 多索引进行索引和搜索 http://www.linuxidc.com/Linux/2012-05/59757.htm

Lucene 实战 (第 2 版) 中文版 配套源代码 http://www.linuxidc.com/Linux/2013-10/91055.htm

Lucene 实战 (第 2 版) PDF 高清中文版 http://www.linuxidc.com/Linux/2013-10/91052.htm

使用 Lucene-Spatial 实现集成地理位置的全文检索 http://www.linuxidc.com/Linux/2012-02/53117.htm

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a9 http://www.linuxidc.com/Linux/2012-02/53113.htm

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a8 http://www.linuxidc.com/Linux/2012-02/53111.htm

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a7 http://www.linuxidc.com/Linux/2012-02/53110.htm

Project 2-1: 配置 Lucene, 建立 WEB 查询系统 [Ubuntu 10.10] http://www.linuxidc.com/Linux/2010-11/30103.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计1949字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中