千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:沈阳千锋IT培训  >  技术干货  >  Lucene/ ElasticSearch这类的搜索引擎和SQL数据库里的查询/全文检索有什么区别?

Lucene/ ElasticSearch这类的搜索引擎和SQL数据库里的查询/全文检索有什么区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-16 07:00:08

一、Lucene/ ElasticSearch这类的搜索引擎和SQL数据库里的查询/全文检索的区别

es也可以理解成是一种数据库,不仅能提供全文检索功能,还可以支持各种数值类的区间查询,聚合计算等,这些和传统数据库一样,从使用场景来说,数据库一般用来存meta,比如网站用户,用户资源等等,这些数据有个特点就是量不会很大,还有就是这些数据一般都比较结构化。

es一般用来存一些流式数据,比如应用日志,这也是目前es应用最广的方面,这些数据有个特点就是往往结构不固定,比如应用日志,不同的程序员写得模块打出来的日志字段数量都不一样,这种数据就不太方便用数据库来处理。

最后,一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。

上面从使用场景上说明了两者的区别,从技术上两者全文检索的实现都差不多,无非是倒排索引,但是lucene毕竟是专业的,做了十几年了,索引效率,存储空间等都比传统数据库快很多,技术也迭代的非常快。

延伸阅读:

二、 Lucene是什么

Lucene是Apache基金会jakarta项目组的一个子项目;Lucene是一个开放源码的全文检索引擎工具包,提供了完整的查询引擎和索引引擎,部分语种文本分析引擎;Lucene并不是一个完整的全文检索引擎,仅提供了全文检索引擎架构,但仍可以作为一个工具包结合各类插件为项目提供部分高性能的全文检索功能;现在常用的ElasticSearch、Solr等全文搜索引擎均是基于Lucene实现的。

索引的生成分为两个部分:

1)创建阶段:

添加文档阶段,通过IndexWriter调用addDocument方法生成正向索引文件;文档添加后,通过flush或merge操作生成倒排索引文件。

2) 搜索阶段:

用户通过查询语句向Lucene发送查询请求;通过IndexSearch下的IndexReader读取索引库内容,获取文档索引;得到搜索结果后,基于搜索算法对结果进行排序后返回。
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

Oracle怎么连接数据库?

2023-10-16

git pull 和git fetch的区别?

2023-10-16

怎么利用UIBE的数据库计算GVC指数?

2023-10-16

最新文章NEW

JDK动态代理为什么必须要基于接口?

2023-10-16

GitLab为什么选择Vue.js?

2023-10-16

箭头函数和普通函数有什么区别?

2023-10-16

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>