Lucene的介绍
Posted 码农DS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene的介绍相关的知识,希望对你有一定的参考价值。
万物皆有规律,不是你中有我,就是我中有你。
1 搜索
搜索是常见的技术和功能,常见与百度搜索引擎,网站或者app的搜索功能中。
所以,了解和掌握它是有必要的。
人类期望的是能够快速的搜索到结果,显然,传统的直接在数据库中进行搜索速度是慢的,尤其是大数据的时代,想要在上亿数据中找到匹配的结果,且毫秒级搞定更是依赖技术。
2 倒排索引
倒排索引又叫反向索引,以字或词为文档中出现的位置情况。
数据库 索引结构
对数据库中原始的数据结构(左图),在业务空闲时事先根据左图内容,创建新的倒排索引结构的数据区域(右图)。
用户有查询需求时,先访问倒排索引数据区域(右图),得出文档id后,通过文档id即可快速,准确的通过左图找到具体的文档内容。
这一过程,可以通过我们自己写程序来实现,也可以借用已经抽象出来的通用开源技术来实现。
3 Lucene
Lucene是一套用于全文检索和搜寻的开源程序库,由Apache软件基金会支持和提供
Lucene提供了一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具
Lucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品
官网:http://lucene.apache.org/
最新的版本为8.4.1
4 全文搜索
5 Lucene实现全文检索的流程
全文检索的流程分为两大部分:索引流程、搜索流程。
索引流程:采集数据--->构建文档对象--->创建索引(将文档写入索引库)。
搜索流程:创建查询--->执行搜索--->渲染搜索结果。
6 Lucene、Solr、Elasticsearch关系
Lucene:底层的API,工具包
Solr:基于Lucene开发的企业级的搜索引擎产品,和zookeeper结合完成分布式。
Elasticsearch:基于Lucene开发的企业级的搜索引擎产品,支持分布式。
下一节,讲解Lucene的使用。
以上是关于Lucene的介绍的主要内容,如果未能解决你的问题,请参考以下文章