ElasticSearch介绍与使用
主要对ElasticSearch进行简单的概念介绍和基本使用(Java),推荐有一定的分布式概念后进行阅读。
1 安装
1.1 安装es和head插件
这里以windows的安装启动为例,linux系统操作基本相似,除启动的文件名后缀不同外没有太大差别。首先下载es:
Past Releases of Elastic Stack Software | Elastic
之后我们可以下载一个head插件,进入github官网下载:
mobz/elasticsearch-head: A web front end for an elastic search cluster (github.com)
或者使用git bash命令下载:
git clone https://gitclone.com/github.com/mobz/elasticsearch-head.git
在使用前先得配置es,保证es可以跨域访问:
进入es目录下的config,修改elasticsearch.yml文件,在最下方添加:
http.cors.enabled: true
http.cors.allow-origin: "*"
之后我们先运行es,找到bin目录下的elasticsearch.bat,双击启动运行
进入localhost:9200,即可看到es的信息:
之后打开我们刚下载的head中的index.html,连接es即可:
head插件主要用来看数据用的,如果要查询还是推荐使用kibana!
Past Releases of Elastic Stack Software | Elastic
同样也是下载,解压安装即可,注意版本需要和es的版本一致
在启动之前,建议先修改汉化配置,找到config目录下的kibana.yml,在最后一行添加:
i18n.locale: "zh-CN"
之后后打开bin目录下的kibana.bat即可。解压和启动都需要一定时间,请耐心等待
之后进入http://localhost:5601/ 就能看到kibana的界面了,点击左侧列表的小螺丝刀图标或者management即可进入控制台,后续的es操作都会在控制台进行演示。
2 核心概念
2.1 基本概念
es是面向文档的,和普通关系型数据库的类比:
关系型数据库 | elasticsearch |
---|---|
数据库(database) | 索引(index) |
表(tables) | 类型(types) |
行(rows) | 文档(documents) |
字段(columns) | 字段(fields) |
这么说只是为了便于理解,但实际上的逻辑肯定有一定区别,在后续的内容中会对es的内容做更好的诠释!
另外在高版本中,type不支持了,index更像表的概念而不是数据库了。
2.2 其它核心概念
其它的核心概念:.
1集群:以es为例,每个集群会有多个的es程序(节点)运行,它们共同持有整个的数据,并一起提供索引和搜索功能。另外对于es来说,即使是单机es也会自己形成一个集群,这和以往普通的单机应用有略微不同。也就是说,如果访问es,肯定只能以连接集群的方式访问,无论单机连接还是集群连接配置都是基本一样的,像redis可以单个连接,也可以搭建集群来连接,两种连接方式的配置是不同的。另外集群都有一个同样的名字来提供访问,es的默认集群名就是elasticsearch
2节点:一个节点就是一个运行的程序,多个节点相互发现就能形成一个集群。
3分片:对于每一个es索引,可以有多个不同的分片,每个分片会搭载不同的数据。举个例子,你有块蛋糕,但蛋糕可能太大,你一个人吃不下(单机存不了那么多索引数据),那你可以把蛋糕切成几份,分给其他人吃(分到不同机子上)。而怎么去把这些分片汇聚到一起,又怎么去找到不同的分片,都是由es管理的,我们只要把整个es集群看成一个es去操作就可以了!
4复制: