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

查看所有标签

猜你喜欢:

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

重构

重构

Martin Fowler / 熊节 / 人民邮电出版社 / 2010 / 69.00元

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。 本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重......一起来看看 《重构》 这本书的介绍吧!

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

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试