ES介绍
- elasticsearch是一款面向文档的nosql数据库,使用json数据格式作为文档序列号格式。
- 使用Lucene作为核心来实现所有索引和搜索的功能,使得每个文档的内容都可以被索引、搜索、排序、过滤。
- 提供了丰富的聚合功能,可以对数据进行多维度分析
- 对外统一使用REST API接口进行沟通,即Client与Server之间使用HTTP协议通信。
- ElasticSearch和mysql对比 (6.0之后会有变化,后续会说)
index(索引,名词)----> database
doc type(文档类型)---> table
document(文档)-------> row
field(字段)----------> column
mapping(映射)--------> schema
query DSL(查询语言)--> SQL
cluster :
代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的。
shards:代表索引分片,es可以把一个完整的索引分成多个分片,一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
replicas: 代表索引副本,es可以设置多个索引的副本,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。
ElasticSearch安装
- 安装JDK,至少1.8或以上版本,java -version
- 下载和解压缩Elasticsearch安装包,目录结构
- 启动Elasticsearch:bin\elasticsearch (后台启动nohup ./bin/elasticsearch )直接启动就可以用了,注意使用非root用户启动
- 检查ES是否启动成功:
http://localhost:9200/?pretty //如果网页中显示如下信息就说明已经安装成功了。
Lucene与ES关系
- Lucene只是一个库,要使用它必须用Java来作为开发语言并将其直接集成到你的应用中。
- Elasticsearch使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能。它通过简单的RESTful API来隐藏Lucene的复杂性,让全文搜索变得简单。
ElasticSearch head总结
集群健康值颜色
green:每个索引的primary shard和replica shard都是active状态的
yellow:每个索引的primary shard都是active状态的,但是部分replica shard不是active状态,处于不可用的状态
red:不是所有索引的primary shard都是active状态的,部分索引有数据丢失了
head页面访问: (可以直接安装elasticsearch-head的chrome的插件)或者服务中安装head插件
http://localhost:9200/_plugin/head/
elasticse