1. 什么是ElasticSearch?
ElasticSearch(简称ES)是一个开源的搜索项目,基于lucene,由Shay Banon于2010年2月启动,其协议是apache 2.0。作为目前搜索市场的一个主要玩家,elasticsearch由于其天然的的分布式和实时特性,很多人也把它作为文本数据库使用,ES的发布在lucene和solr社区引起很大的震动,目前solr4.0+的版本的solrcloud也吸收了很多ES的特性。
2. elasticsearch的一些基本概念
需要我们注意的是,这些概念理解只是解释其含义,不推荐强制翻译成中文。
Index:这是ES存储数据的地方,类似于关系数据库的database。
Document type:嗯,类似关系数据库的表,主要功能是将完全不同schema(这个概念以后会讲到,不急)的数据分开,一个index里面可以有若干个Document type。
Document:好吧,这个类似关系数据库的一行,在同一个Document type下面,每一Document都有一个唯一的ID作为区分;
Filed:类似关系数据库的某一列,这是ES数据存储的最小单位。
Cluster和Node:ES可以以单点或者集群方式运行,以一个整体对外提供search服务的所有节点组成cluster,组成这个cluster的各个节点叫做node。
shard:通常叫分片,这是ES提供分布式搜索的基础,其含义为将一个完整的index分成若干部分存储在相同或不同的节点上,这些组成index的部分就叫做shard。
Replica:和replication通常指的都是一回事,即index的冗余备份,可以用于防止数据丢失,或者用来做负载分担。