ES(elaticsearch)简写, Elasticsearch是一个开源的高扩展的分布式全文检索引擎;是一个基于Lucene的搜索服务器;
ES是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
Lucene与ES关系:Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
二 用来做什么?用于搜索各种文档 大数据搜索,分析具体如下:
1)检索相关数据;
2)返回统计结果;
3)速度要快。
首先将数据提交到 Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和结果一并存入数据,在搜索数据的时候,在根据权重将结果排名,打分之后返回;
四 有关概念 1 cluster:代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。ES的一个概念就是去中心化,字面上理解的就是无中心节点,这是对于集群外部来说的,因为从节点外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。
2 shards:代表索引分片,es可以吧一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
3 replicas:代表索引副本,es可以设置多个索引副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或者丢失时可以从副本中恢复,二是提高es的查询效率,es会自动对索引请求进行负载均衡。
4 recovery:代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引进行分片进行重新分配,挂掉的节点重新启动是也会进行数据恢复。
5 river:代表es 的一个数据源,也是其它存储方式(如;数据库),同步数据到esd的一个方法,他是以插件的方式存在的一个es服务,谈过读取river 中的数据并把它索引到es中,官方的river有couchdb的,RabbitMQ的,Twitter的,Wikipedia的。
6 gateway:代表es索引快照的存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到本地硬盘。gateway对索引快照进行存储,当这个es集群关闭再重新启动时就会从gateway中读取索引备份数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。
7 discovery.zen:代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。
8 Transport:代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。



