Elasticsearch 7 系列(1) —— 入门

 

Elasticsearch是一个分布式的全文搜索引擎,它能快速的存储、检索海量的数据,因此越来越多的公司使用,包括携程、滴滴、今日头条等等。下面是官网上的介绍:Elasticsearch是一个高度可扩展的开源全文本搜索和分析引擎。使用它可以快速,近乎实时地存储,搜索和分析大量数据。它通常用作支持具有复杂搜索功能和要求的应用程序的基础引擎/技术。

我们知道了Elasticsearch是什么了,但我们得搞清楚Elasticsearch是否适合在我们的项目中使用。有些朋友可能会问,用数据库一样能实现检索的功能,为什么还要引进Elasticsearch呢?那这里就得对比一下Elasticsearch和数据库的差异:

1.关系型数据库主要面向OLTP的,关系型数据库一般只支持结构化数据的存储(但PostgreSQL12开始也支持json格式的存储和查询了),我们也都知道关系型数据库其实是由二维表结构来实现的,定义的每一列数据都是有类型和长度限制的,并且关系型数据库大多都不是分布式的,数据的实时检索并不是它的优势,它的优势是事务特性,能保证数据不出现脏数据。

2.非关系型数据库例如hbase是一种分布式列式存储数据库,由于是列式存储它支持海量数据的存储(官网介绍它支持数十亿行数百万列的单表存储),单纯从存储角度来看,列式存储(hbase)数据库有很多优点,但回归到检索来看,hbase支持简单的行、列或者范围的查询,如果没有对查询的字段做二级索引就会引发全表扫描操作,性能就会比较差。

3.Elasticsearch就不同了,Elasticsearch提供了丰富的查询语法,支持多种类型的精准匹配、模糊匹配、范围查询、聚合操作等,同时Elasticsearch也对空间地理类型提供了支持,例如,我们可以用Elasticsearch基于地理坐标范围做范围内的卫星影像选择,或者地理坐标范围内的数据检索,实现检索周围n公里具有相同操作的用户等。

Elasticsearch采用倒排索引做反向索引,即使在亿级数据量下还能做到秒级响应。同时Elasticsearch和solr都是基于Lucene,同时由于solr在不断添加数据的同时进行检索数据的效率会变低,因此越来越多的公司使用Elasticsearch作为全文检索组件。

由于Elasticsearch大版本之间差异较大(Elasticsearch6.X中有Type概念,Elasticsearch7.X中Type已不建议使用,到Elasticsearch8.X中将会彻底删除),我们后续的代码教程将会采用Elasticsearch7.10版本,你们准备好了吗?

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值