ES数据库介绍

  1. 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

前言

一、ES(ElasticSearch)是什么?

二、ES的使用场景

三、ES的特点

四、ES和传统数据库对比

总结


前言

今天项目通过python用到了ES数据库,第一次遇到,记录学习一下


一、ES(ElasticSearch)是什么?

  1. 它底层是基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,是基于RESTful web接口.Elastcisearch是用java开发的.并且是作为Apache许可条款下的开放源码发布,是目前流行的企业级搜索引擎

二、ES的使用场景

  1. 为用户提供按关键字查询的全文搜索功能.

  2. 搜索的数据对象是大量的非结构化的文本数据

  3. 文件记录达到数十万或者数百万甚至更多

  4. 支持大量基于交互式文本的查询

  5. 需求非常灵活的全文搜索引擎

  6. 对高相关度的搜索结果有特殊需求,但是没有可用的关系数据库可以满足

  7. 对不同的记录类型,非文本数据操作或安全事务处理的需求相对较少的情况.

  8. 实现企业海量数据的处理分析的解决方案.大数据领域的重要一份子,比如著名了ELK(不是那个BLG的ELK,但他确实很帅,是LPL自己的老公)框架.

 

三、ES的特点

  1. 天然分片,天然集群:es把数据分成多个shard,多个shard可以组成一份完整的数据,这些shard可以分布在集群中的各个机器节点中,随着数据的不断增加,集群可以增加多个分片,把多个分片放到多个机子上,已达到负载均衡,横向扩展,实际运算中,每个查询任务提交到某一个节点,该节点必须负责将数据进行整理汇聚,再返回给客户端,也就是一个简单的节点上进行map计算,并在一个固定的节点上进行Reduces得到最终结果向客户端返回.
  2. 天然索引:ES所有数据都是默认进行索引的,这点和mysql正好相反,mysql是默认不加索引,要加索引也必须特别说明,ES只有不加索引才需要特殊说明.而ES使用的倒排索引和mysql的B+tree索引并不相同

四、ES和传统数据库对比

  1. 传统数据库的弊端:
    1. 传统关系型数据库对于关键字的查询,只能逐字逐句的匹配,性能非常差.
    2. 匹配方式不合理
  2. lucene的索引结构增加了一层Term Index结构,用于快速定位,而这Term Index是缓存在内存中的,但mysql中的B+tree不在内存中,所以整体来看ES的速度更快,但是同时也更加消耗资源
  3. 咱们之前讲的处理分词,构建倒排索引,等等,都是这个叫lucene的做的。那么能不能说这个lucene就是搜索引擎呢?

    还不能。lucene只是一个提供全文搜索功能类库的核心工具包,而真正使用它还需要一个完善的服务框架搭建起来的应用。

    好比lucene是类似于发动机,而搜索引擎软件(ES,Solr)就是汽车。


总结


文章参考学习:

【ES三周年】ElasticSearch数据库简单介绍-腾讯云开发者社区-腾讯云

es数据库简介_es数据库介绍_少年阿文的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值