ElasticSearch学习(一) 简介与认识

一、ElasticSearch简介

Elasticsearch是一个使用Java语言开发的开源分布式、RESTful 风格的搜索和数据分析引擎,它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,但它不仅包括了全文搜索功能,还可以进行以下工作:

  • 一个分布式的实时文档存储,每个字段可以被索引与搜索
  • 一个分布式实时分析搜索引擎
  • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
  • 根据词库分词全文检索,并支持关键字高亮显示

由于Elasticsearch的功能强大和使用简单,维基百科、卫报、Stack Overflow、GitHub等都纷纷采用它来做搜索。现在,Elasticsearch已成为全文搜索领域的主流软件之一

二、常见的搜索引擎

Lucene、Solr、ElasticSearch

三、ElasticSearch和Solr的区别

  • ElasticSearch基本是开箱即用,比较简单。Solr则配置起来略微复杂一些
  • Solr查询静态数据时速度比ElasticSearch要快,但如果是动态数据,Solr的查询速度会降低很多,而ElasticSearch的查询效率基本没有变化
  • Solr单纯的对已有的数据进行检索时更快,但实时建立索引时,Solr会产生io阻塞,查询效率明显降低,但随着数据量的增加,Solr的检索效率会变得更低,而ElasticSearch则基本没有明显变化
  • Solr 必须利用 Zookeeper 才能进行分布式管理和集群管理,而 ElasticSearch 则自带分布式协调管理功能
  • Solr 支持更多格式的数据,比如json、xml、csv,而 ElasticSearch 仅支持json文件格式
  • Solr 官方提供的功能更多,而 ElasticSearch 本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要kibana友好支撑

四、ElasticSearch的优缺点

优点:
  • 具备横向可扩展性:只需要增加一台服务器,做些配置,启动 ES 进程就可以快速并入集群
  • 分片机制:同一个索引分成多个分片(sharding),类似于 redis 中的分片,采取分而治之的思想来更好地解决问题
  • 高可用:提供复制机制,一个分片可以设置多个复制,使得某台服务器宕机的话,集群依旧可以正常运行,并会把丢失的复制恢复到其它可用节点上
缺点:
  • 节点数据的一致性问题:其默认的机制是通过多播机制,同步元数据信息,但是在比较繁忙的集群中,可能会由于网络的阻塞,或者节点处理能力达到饱和导致各节点元数据不一致,这样会使集群处于不一致状态。目前并没有一个彻底的解决方案来解决这个问题,但是可以通过将工作节点与元数据节点分开的部署方案来缓解这种情况
  • 没有细粒度的权限管理,没有像MySQL那样的分各种用户,每个用户又有不同的权限

五、ElasticSearch的倒排索引

倒排索引通俗来说是将存放的数据按一定方式进行分词,并将分词的内容存放到一个单独的分词库中,当用户进行数据检索时,会先将用户查询的关键字进行分词,然后去分词库中匹配内容,最后得到数据对应的地址或者标识,在根据地址或者标识去ElasticSearch存放数据的位置获取指定的数据
Elasticsearch能够实现快速、高效的搜索功能,正是基于倒排索引原理
在这里插入图片描述

六、ElasticSearch的基本概念

关系型数据库ElasticSearch
数据库(Database)索引(Index)
表(Table)类型(type)
行(Row)文档(Docments)
列(Column)字段(Fields)
表结构(Schema)映射(Mapping)
SQLDSL

1.索引(index) : 一个索引可以理解成一个关系型数据库

2.类型(type) : 一个type就像一类表,比如user表、order表

  • ES 5.X中一个index可以有多种type
  • ES 6.X中一个index只能有一种type
  • ES 7.X不建议使用,即使用默认的_doc
  • ES 8以后则完全不支持

3.映射(mapping) : mapping定义了每个字段的类型等信息。相当于关系型数据库中的表结构

4.文档(document) : 一个document相当于关系型数据库中的一行记录

5.字段(field) : 相当于关系型数据库表的字段

6.集群(cluster) : 集群由一个或多个节点组成,一个集群由一个默认名称“elasticsearch”

7.节点(node) : 集群的节点,一台机器或者一个进程

8.分片和副本(shard)

  • 副本是分片的副本。分片有主分片(primary Shard)和副本分片(replica Shard)之分
  • 一个Index数据在屋里上被分布在多个主分片中,每个主分片只存放部分数据
  • 每个主分片可以有多个副本,叫副本分片,是主分片的复制

七、ElasticSearch和Kibana的安装与启动

linux下安装ElasticSearch: linux下安装ElasticSearch
linux下安装Kibana: linux下安装Kibana

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值