002,elasticsearch的核心概念

一、lucene和elasticsearch的前世此生java

    lucene,最早进、功能最强大的搜索库,直接基于lucene开发,很是复杂,api复杂(实现一些简单的功能,写大量的java代码),须要深刻理解原理(各类索引结构)数据库

    elasticsearch,基于lucene,隐藏复杂性,提供简单易用的restful api接口、java api接口(还有其余语言的api接口)
(1)分布式的文档存储引擎
(2)分布式的搜索引擎和分析引擎
(3)分布式,支持PB级数据api

    开箱即用,优秀的默认参数,不须要任何额外设置,彻底开源服务器

 

二、elasticsearch的核心概念restful

(1)Near Realtime(NRT):近实时,两个意思,数据结构

        从写入数据到数据能够被搜索到有一个小延迟(大概1秒);elasticsearch

        基于es执行搜索和分析能够达到秒级分布式

(2)Cluster:集群,包含多个节点,
(3)Node:节点,默认节点会去加入一个名称为“elasticsearch”的集群,若是直接启动一堆节点,那么它们会自动组成一个elasticsearch集群搜索引擎

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

(5)Index:索引,包含一堆有类似结构的文档数据,
(6)Type:类型,每一个索引里均可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field,好比博客系统,有一个索引,能够定义用户数据type,博客数据type,评论数据type。

(7)shard:单台机器没法存储大量数据,es能够将一个索引中的数据切分为多个shard,分布在多台服务器上存储。
(8)replica:任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,所以能够为每一个shard建立多个replica副本。

 

三、elasticsearch核心概念 vs. 数据库核心概念

Elasticsearch            数据库

-----------------------------------------

Document            行 Type                表 Index                库