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

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

内容简介:下面来通过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的核心概念》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Practical JavaScript, DOM Scripting and Ajax Projects

Practical JavaScript, DOM Scripting and Ajax Projects

Frank Zammetti / Apress / April 16, 2007 / $44.99

http://www.amazon.com/exec/obidos/tg/detail/-/1590598164/ Book Description Practical JavaScript, DOM, and Ajax Projects is ideal for web developers already experienced in JavaScript who want to ......一起来看看 《Practical JavaScript, DOM Scripting and Ajax Projects》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具