Lucene简介与数据库索引

本文介绍了Lucene作为全文检索引擎工具包的基本概念及其底层的倒排索引原理,同时探讨了数据库索引,特别是B+树结构在数据库查询优化中的作用,包括索引的创建、使用规则及SQL查询优化器的工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lucence


 每个技术都会有他存在的原因:解决实际生活中的问题和需求。个人认为Lucene(全文检索引擎工具包)就是迎合了互联网的发展解决在大量数据中准确的查询问题,关键词的划分、关键词出现的次数、包含关键词的目标文档排序等等。


一、简介

 Lucene是全文检索引擎工具包,他是slor、ElasticSearch的底层,他们各有各的优点但是因为分布式的原因ElasticSearch是明显比slor更深程序员的喜爱,万维网、github、StackOverflow都是使用的ElasticSearch做的分布式全文检索。
 参考链接:
  1. 什么是Lucene和Solr和Elasticsearch,它们的区别是什么?

二、Lucene底层

 1.正排索引
  文档ID 对应 关键词位置、出现次数。
 2.倒排索引
  关键词位置、出现次数 对应 文档ID。
 Lucene底层使用的倒排索引,从上面的名词解释不难看出Lucene为什么使用倒排索引?各位可以想想我们在实际场景中使用浏览器搜索肯定是根据“关键词”去搜索出相关文档的,这刚好对应“倒排索引”根据关键词位置、出现次数 对应 文档ID。
 参考链接:什么是倒排索引

数据库索引


 因个人能力有限以下内容全是自己参考别人的博客拿自己的语言写出来了,其中还是有很多内容是雷同的。博客内容正确性对待确认,本篇作者也还没有实际操作正是因为没有用过数据库索引优化SQL查询所以才有的此篇博客,后续我会上机操作确认其中索引的使用再做修改。此篇博客仅仅是针对自己受益较深、基础理论的介绍如果想深入了解的请查看下面的连接。


一、简介

 数据库索引是对于数据库表中的某一列或多列数据而言的,优化了数据库的查询。如果数据库数据量较少不推荐使用索引,因为创建索引也会有一定的开销。
 1. 分类

  • 聚合索引:聚集索引是指数据库表行中数据的物理顺序(data文件中的数据顺序)与键值的逻辑(索引)顺序相同,常用表主键key作为的索引。
  • 非聚合索引:与聚合索引概念相反。
  • 联合索引:以数据库表多列作为的索引。
  • 不存在跨表的联合索引,解决方式是使用子查询确定数据范围再精确查询数据,如下所示(name是students表的单例索引,score是grades表的单例索引)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值