一、Elasticsearch简介
Elasticsearch是一个分布式的搜索引擎,可以实时分析。可以扩展到数百台服务器,检索巨大的数据。集成在一个独立的服务器,你可以通过REST风格的API来访问。Elasticsearch是建立在Lucene之上,Lucene是一个全文搜索引擎库,最先进的,丰富特点的搜索引擎库。(Lucene只是一个库,要驾驭它,你需要用java集成Lucene,更糟糕的是,你需要了解信息搜索如何工作的,Lucene很复杂)
ElasticSearch的一些概念:
近实时
ES并不是一个标准的数据库,它不像MongoDB,它侧重于对存储的数据进行搜索。因此要注意到它 不是 实时读写 的,这也就意味着,刚刚存储的数据,并不能马上查询到。
当然这里还要区分查询的方式,ES也有数据的查询以及搜索,这里的近实时强调的是搜索….
集群 (cluster)
在一个分布式系统里面,可以通过多个elasticsearch运行实例组成一个集群,这个集群里面有一个节点叫做主节点(master),elasticsearch是去中心化的,所以这里的主节点是动态选举出来的,不存在单点故障。
在同一个子网内,只需要在每个节点上设置相同的集群名,elasticsearch就会自动的把这些集群名相同的节点组成一个集群。节点和节点之间通讯以及节点之间的数据分配和平衡全部由elasticsearch自动管理。
这样从外部来看elasticsearch就是一个整体。
节点(node)
每一个运行实例称为一个节点,每一个运行实例既可以在同一机器上,也可以在不同的机器上.所谓运行实例,就是一个服务器进程.在测试环境内,可以在一台服务器上运行多个服务器进程,在生产环