Lucene的介绍

Posted 码农DS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene的介绍相关的知识,希望对你有一定的参考价值。

万物皆有规律,不是你中有我,就是我中有你。


当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放



Lucene的介绍



1 搜索

搜索是常见的技术和功能,常见与百度搜索引擎,网站或者app的搜索功能中。


所以,了解和掌握它是有必要的。


人类期望的是能够快速的搜索到结果,显然,传统的直接在数据库中进行搜索速度是慢的,尤其是大数据的时代,想要在上亿数据中找到匹配的结果,且毫秒级搞定更是依赖技术。


倒排索引

倒排索引又叫反向索引,以字或词为文档中出现的位置情况。



                   数据库                                                                  索引结构

Lucene的介绍



对数据库中原始的数据结构(左图),在业务空闲时事先根据左图内容,创建新的倒排索引结构的数据区域(右图)。


用户有查询需求时,先访问倒排索引数据区域(右图),得出文档id后,通过文档id即可快速,准确的通过左图找到具体的文档内容。


这一过程,可以通过我们自己写程序来实现,也可以借用已经抽象出来的通用开源技术来实现。


3 Lucene


Lucene是一套用于全文检索和搜寻的开源程序库,由Apache软件基金会支持和提供


Lucene提供了一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具


Lucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品


官网:http://lucene.apache.org/


最新的版本为8.4.1


4 全文搜索



5 Lucene实现全文检索的流程



全文检索的流程分为两大部分:索引流程、搜索流程。


索引流程:采集数据--->构建文档对象--->创建索引(将文档写入索引库)。


搜索流程:创建查询--->执行搜索--->渲染搜索结果。


Lucene、Solr、Elasticsearch关系


Lucene:底层的API,工具包


Solr:基于Lucene开发的企业级的搜索引擎产品,和zookeeper结合完成分布式。


Elasticsearch:基于Lucene开发的企业级的搜索引擎产品,支持分布式。


下一节,讲解Lucene的使用。



以上是关于Lucene的介绍的主要内容,如果未能解决你的问题,请参考以下文章

Lucene介绍

lucene的介绍与优化

lucene介绍

Lucene介绍

技术介绍一款全文搜索引擎--lucene

Lucene介绍与入门使用