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

查看所有标签

猜你喜欢:

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

金融数量分析

金融数量分析

郑志勇 / 北京航空航天大学出版社 / 2014-7-1 / CNY 58.00

《金融数量分析——基于MATLAB编程(第3版)》一书中的案例均来源于作者的工作实际,并充分体现“案例的实用性、程序的可模仿性”,程序中附有详细的注释。例如,投资组合管理、KMV模型计算、期权定价模型与数值方法、风险价值VaR的计算等案例程序,读者可以直接使用或根据需要在源代码的基础上修改、完善。 本书共23章。前两章分别对金融市场的基本概况与MATLAB的基础知识进行概述;接下来为20个金......一起来看看 《金融数量分析》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具