elasticsearch学习笔记(三)——Elasticsearch的核心概念

栏目: 编程工具 · 发布时间: 5年前

内容简介:下面来通过lucene引出Elasticsearch的核心概念lucene是最先进、功能强大的搜索库。但是直接基于lucene开发,会非常的复杂。它的api很复杂,只是实现一些简单的功能,可能就需要写大量的java代码。要用好lucene,需要深入了解其内部原理,包括各种索引结构。而elasticsearch,它是基于lucene,隐藏了lucene的复杂性,对外提供简单易用的restful api接口、java api接口等等。

下面来通过lucene引出Elasticsearch的核心概念

1、lucene和elasticsearch的前世今生

lucene是最先进、功能强大的搜索库。但是直接基于lucene开发,会非常的复杂。它的api很复杂,只是实现一些简单的功能,可能就需要写大量的 java 代码。要用好lucene,需要深入了解其内部原理,包括各种索引结构。

而elasticsearch,它是基于lucene,隐藏了lucene的复杂性,对外提供简单易用的restful api接口、java api接口等等。

关于elasticsearch的一个传说,据说有一个 程序员 失业了,陪着老婆去英国伦敦学习厨师课程。看着老婆每次查找菜谱特别费劲,于是就想给老婆写一个菜谱搜索引擎,准备使用lucene,但是发现lucene实在是太复杂了,就开发了一个封装了lucene的开源项目,compass。后来程序员找到工作了,是做分布式的高性能项目的,就觉得自己封装的开源项目compass也不够用了,就写了elasticsearch,让lucene变成分布式的系统。

2、elasticsearch的核心概念

(1)Near Realtime(NRT):近实时,两层意思,一个是写入数据到数据可以被搜索到有一个小延迟(大概1s左右),一个是基于ES执行搜索和分析可以达到秒级

(2)Cluster:集群,包含多个节点,每个节点属于哪个集群是通过一个叫做集群名称的配置来决定的。对于中小型应用来说,刚开始一个集群就一个节点很正常

(3)Node:节点,集群中的一个节点,节点也有一个名称默认是随机分配的,也可以手动指定,当我们在执行运维管理操作的时候节点的名称很重要

(4)Document&field:文档,es中最小的数据单元。一个document可以是一条客户数据,一条商品分类数据,一条订单数据,通常用JSON数据结构表示,每个index的type中都可以去存储多个document。一个document里面有很多个field,每个field就是一个数据字段。

(5)Index:索引,包含一堆有类似结构的文档数据。比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称。一个index包含很多document,一个index就代表了一类类似的或者相同的document。比如说建立一个product index,商品索引,里面可能就存放了所有的商品数据,所有的商品document。

(6)Type:类型,每个索引里都可以有一个type,之后更高级的版本可能会去掉这一个概念。type是index中的一个逻辑数据分类,一个type下的document,都有相同的field,比如博客系统,有一个索引,可以定义用户数据type

(7)shard:分片,单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多的数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。每个shard都是一个lucene index。

(8)replica:任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为每个shard创建多个replica副本。replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认是5个),replica(随时修改数量,默认是1个)。默认每个索引10个shard,5个primary shard,5个replica shard,最小的高可用配置是2台服务器

3、elasticsearch核心概念和数据库核心概念

Elasticsearch | Document | Index (Type)

数据库 | 行 | 表


以上所述就是小编给大家介绍的《elasticsearch学习笔记(三)——Elasticsearch的核心概念》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构、算法与应用(原书第2版)

数据结构、算法与应用(原书第2版)

Sartaj Sahni / 王立柱、刘志红 / 机械工业出版社 / 2015-4 / 79.00元

《数据结构、算法与应用——C++语言描述》是享有盛誉的数据结构教科书的第2版。它完整地包含了基本数据结构的内容,是CS2课程的理想用书。作者Sartaj Sahni通过循循善诱的讲解、直观具体的讨论和基于现实的应用,让读者轻松、愉快地学习。新版书着重利用标准模板库(STL),把书中开发的数据结构和算法与相应的STL实现方法相互关联。本书还增加了很多新的实例和练习题。 书中的应用实例是它的特色......一起来看看 《数据结构、算法与应用(原书第2版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码