ElasticSearch | 介绍

1. 前言

只供参考
为什么使用ElasticSearch?
现在是在市场上应用最广泛 最热门 全文搜索引擎有 ElasticSearch 、 Solr 这两种
ElasticSearch 、 Solr 现在社区都很活跃;
以下表格看下两个搜索引擎的区别于优势

SolrElasticSearch
诞生时间20042010
底层采用Java开发 基于Lucene采用Java开发,基于Lucene
实时建立索引Solr 会产生IO 阻塞,效率低不阻塞,效率高
实时添加数据检索效率变低检索效率变化不大
分布式管理利用zookeeper进行分布式管理自身带有分布式管理,天生分布式
部署需要部署到web容器上 如tomcat自身携带运行功能
支持索引方式HTML、PDF、JSON、XML、CSV等等仅支持JSON
社区Apache 社区Elasticsearch和其他软件的公司
使用难度复杂,部署复杂需要使用zookeeper 来自做到分布式简单、易于使用、上手快, 快速部署
专注方向文本搜索搜索 +数据分析

2. 简介

ElasticSearch 是一个建立在Lucene基础上的搜索引擎.
ElasticSearch 是一个实时分布式和开源的全文搜索和分析引擎.
ElasticSearch 是面向文档的,ElasticSearch 不仅仅存储文档而且索引每个文档的内容,使之可以被检索。
ElasticSearch 使用JSON 作为文档的序列化格式,JSON 更简单、简洁和容易阅读。

MySQL 使用B+Tree 的索引结构提升数据检索速度,而ElasticSearch 使用 倒排索引 的结构来达到相同的目的。

3. 优势

  • 天生分布式 集群扩容无缝整合新节点
  • 索引拆分多个分片 ,每个片可能有0-多个副本
  • 集群可扩展上百台服务器, 处理PB级别的结构化/非结构化的数据
  • 支持插件机制.分词插件、同步插件、可视化插件等
  • 比solr 更加轻量级

4. 核心概念

4.1 逻辑层面

  • (1) 索引 index

ElasticSearch 中 索引 Index 类似于 mysql中的数据库,主要存储用户文档数据.

  • (2) 类型type

ElasticSearch 中 type类型 是 类似于mysql 中的表 ,每个文档都属于一种type类型,如果没有定义 会有默认值, 每个Index索引包含很多type类型。

注意: 同一索引下,不同type的数据存储其他type的field 大量空值,造成资源浪费。
所以,不同类型数据,要放到不同的索引中。
ElasticSearch9中,将会彻底删除type。

  • (3) 文档Document

ElasticSearch 中 Documetn文档是实际的数据主体, 相当于Mysql表中的一条数据, ES的所有操作都是建立在文档上的,每个文档有各种Filed组成,文档可以理解为一个JSON 对象

  • (4) 字段Filed

每个文档中包含多个Filed 类似于Mysql 表中的列表, 每个字段的所有数据都是默认被索引的,专门设置了倒排索引

  • (5)映射Mapping

映射 用户定义Filed的属性 ,如字段类型 是否分词等.

4.2 物理层面

  • (1)集群Cluster

ElasticSearch 集群, ElasticSearch天生是分布式,天生支持集群部署.

  • (2)节点Node

在集群中 多个节点服务组成一个集群 , 就是一个ES 实例就是一个节点

  • (3)分片Shard

分片是数据的容器, 文档被保存在分片中,分片是分配到集群内的各个节点里的, 当集群规模扩大或者缩小时,ElasticSearch 会自动的在各个节点中迁移分片,使数据均匀的分布在集群里. 创建索引的时候可以指定分片数量,默认是5个.

分片 Shard因为ES是分布式架构,类似于HDFS的存储方式,所以数据被打散存储在集群的多个节点上,一个分片实际上就是底层Lucene的一个索引,这里说的分片指的是ES中的主分片(因为还有副本分片一说),分片的方式是ES自动完成,用户可以指定分片的数量,主分片一旦指定就不能修改,因为ES打散数据的方式是和索引创建时指定的主分片数量有关(参考公式:shard = hash(routting) % number_of_primary_shards进行文档分配),后期改变会导致分片中的数据不可搜索。
一个分片是一个底层的工作单元,它只是保存了全部数据的一部分

  • (4)副本Replia

副本就是分片的一个拷贝,作为故障时保护数据不丢失的备份数据.
另外,请求量很大的情况下,副本可以分担主Shard压力,承担查询功能。副本个数还以在创建完索引后灵活调整

这里需要知道集群环境下拥有越多的副本分片,也将拥有越高的吞吐量.

5. ElasticSearch安装 (linux环境)

安装教程地址:
https://blog.csdn.net/qq825478739/category_11825929.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一介草民丶

谢谢老板的一分钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值