1.2 Elasticsearch 简介

什么是Elasticsearch?

You know, for search.

 

Elasticsearch 的诞生

多年前一个失业的程序员,陪着妻子去学烹饪。他想要给妻子做一个有关食谱的搜索引擎。使用的是Lucene,但开发过程中觉得Lucene使用起来比较困难。所以在Lucene的基础上进一步封装,推出了Compass。后来经过不断完善就有了,高性能的、实时的、分布式的搜索服务 Elasticsearch。

 

适用场景

电商中的商品信息,各种房屋中介app的房源信息,团购上的商铺信息等等。这类搜索条件复杂,数据量大,高并发,并且很少修改,对数据一致性要求不高的数据都可使用Elasticsearch。

 

Elasticsearch 基本概念

1、节点

每一个节点都是一个独立的Elasticsearch 服务,可以存储数据,搜索数据。

 

2、集群

一个或多个相同集群名称的节点组成了集群。集群中的每个节点名称不能相同。当一个节点启动后,集群就会感知到它,并自动把该节点加入到集群中。当数据量不断增大,访问量增高时可以通过增加节点来提升搜索服务的性能。

 

3、索引

索引是一个具有相似结构数据(文档)的集合。如果与Mysql对比,索引相当于Mysql的一个数据库。

 

4、type

一个索引中可以定义多个type。例如家用电器和生活用品在同一个"商品"索引中。可以通过不同的type区分。type相当于Mysql数据库中的一个表。

 

5、文档

文档是存储在索引(分片)中的一个Json字符串。

 

6、主分片(primary shard)

一个索引中可以有多个主分片,这些主分片可以分布在不同的节点中。文档是存储在分片中的。创建索引时可指定主分片个数,默认5个。(每一个分片都是一个lucene实例)

 

7、副本分片(replica shard)

一个索引中可以有多个副本分片,副本分片相当于对主分片的拷贝。当一个文档写入主分片中,会从主分片同步到该主分片的各个副本分片。创建索引默认会有1个副本分片(每一个主分片有一个相应的副本分片)

副本分片的特点:

(1) 副本分片可以进行查询操作。

(2) 当主分片出现故障时,可以从相应的副本分片中选择一个作为主分片

(3) 主分片与副本分片不允许在同一个节点中。如果在主分片与副本分片在一个节点中。这个节点故障后主分片与副本分片都不可用了,起不到备份作用。

 

8、路由(routing)

当存储一个文档时,路由会决定该文档具体存储在哪个分片中。路由的作用是使索引中的文档平均分布在分片中。主分片坐标 = hash(路由值) % 主分片数量,路由值默认是文档的 _id值。

查询的时候可以指定路由的值,帮助Elasticsearch快速的定位到分片。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值