大家可以看看elasticsearch权威指南的第一章,很好的入门指南,让你明白es是什么
安装集群管理工具
./bin/plugin install mobz/elasticsearch-head
安装监控工具
安装sql工具
很多书都是用的老版本,所以软件都用的是老版本
到官网下载elasticsearch-2.4.3
访问地址 http://127.0.0.1:9200/
管理地址
可以安装head 插件 .bin//plugin install mobz/elasticsearch-head
https://download.elastic.co/kibana/kibana/kibana-4.6.1-darwin-x86_64.tar.gz
安装sense
kibana plugin --install elastic/sense
marvel安装
kibana plugin --install elasticsearch/marvel/latest
现在我们就可以根据es权威指南做一些操作了,逐一实践权威指南的第一章。
api
es为java提供两种api
节点的api
传输客户端api
通过rest api 访问数据
es的文档
Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。这种理解数据的方式与以往完全不同,这也是Elasticsearch能够执行复杂的全文搜索的原因之一。
es中与数据库数据的对比
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
put /megacorp/employee/1 +json串可以创建对应的索引+表+id
/库/表/id
搜索
/库/表/_search +json条件
搜索条件
query:match:fields
query:filtered:filter:range
query:match_phrase:fields 短语搜索
highlight:fields:fields 高亮
aggs::all_xxx:terms:field聚合
es的逻辑结构就是
索引,类型,文档,字段
代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。
代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。
代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。
代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的。
代表es索引快照的存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到本地硬盘。gateway对索引快照进行存储,当这个es集群关闭再重新启动时就会从gateway中读取索引备份数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。
代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。
代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。