一、Elasticsearch是什么
Elasticsearch是由Shay Banon发起的一个开源搜索服务项目,并于2010年2月开源。Elasticsearch不仅仅能提供全文检索功能,它还能提供高效的分布式数据存储、索引、搜索,能完成对大数据的自动分片、自动负载索引,并提供RESTful Web的风格接口。
二、Elasticsearch中涉及到的相关概念
- Cluster和Node ,Cluster是对外提供搜索服务器的集群,组成这个Cluster的各个节点就做Node。借点Node是Elasticsearch运行的实例。
- Shards : Elasticsearch将一个完整的索引分成若干部分,每个部分就是一个Shards。每个Shard实际上就是一个基于Lucene的索引。Shards存储在相同或不同的Node上; Shards是数量一般在索引创建时指定,且索引创建后不能更改(其初始配置也是可以修改的)。检索时,Elasticsearch会将查询发送到不同的Shards上并将返回结果合并,这个过程对用户来说是透明的。
- Replicas :是索引的冗余备份,可用户防止数据丢失货用来做负载均衡。一般地,Elasticsearch会自动对搜索请求进行负载均衡。
- Recovery:在有借点加入或退出集群Cluster或故障节点重新启动时,Elasticsearch会的根据机器负载情况,对索引分片Shards进行重新分配。
- River:是一个运行在Elasticsearch集群内部的插件,主要用来从外部获取异构数据,然后在Elasticsearch里创建索引。常见的有couchDbriver、RabbitMQriver Plugin、Twitter river Plugin、Wikipedia river plugin、M