Elasticsearch 环境搭建
elasticsearch端口:
9200:用于外部通讯,基于http协议,程序与es的通信使用9200端口。
9300:jar之间就是通过tcp协议通信,遵循tcp协议,es集群中的节点之间通过9300端口进行通信。
windows环境下安装es分布式环境:版本为:6.5.1
下载解压包,解压三次,分别命名为如下名称:
1.修改配置
1)主节点master:
在elasticsearch-6.5.1-master\config 下的elasticsearch.yml 文件,在底部追加如下内容:
cluster.name: tom-test #集群名称
node.name: master #节点 ID,保证唯一
node.master: true #标记是否为主节点
network.host: 127.0.0.1 #对外公开的 IP 地址,如果自动识别配置为 0.0.0.0
2)slave1节点:
对应的在elasticsearch.yml文件底部追加如下内容:
cluster.name: tom-test #集群名称三个节点保持一致
node.name: slave-1 #从节点ID,保证唯一
network.host: 127.0.0.1 #对外公开的IP 地址,如果自动识别配置为0.0.0.0
http.port: 8200 #默认端口为9200,因为我的环境是在同一台机器,因此,指定服务端口号
discovery.zen.ping.unicast.hosts: ["127.0.0.1"] #集群的IP组,配置主节点IP 即可
3)slave2节点:
cluster.name: tom-test #集群名称三个节点保持一致
node.name: slave-2 #从节点ID,保证唯一
network.host: 127.0.0.1 #对外公开的IP 地址,如果自动识别配置为0.0.0.0
http.port: 8000 #默认端口为9200,因为我的环境是在同一台机器,因此,指定服务端口号
discovery.zen.ping.unicast.hosts: ["127.0.0.1"] #集群的IP 组,配置主节点IP 即可
【注】:配置yml文件中的":"后要空一格
2.启动elasticsearch:
依次执行bin/elasticsearch.bat文件启动
【注】可通过在elasticsearch.bat文件中 title=“es-master”; 来区别cmd窗口的名称
3.可视化插件安装
1)下载NodeJS 环境:
https://nodejs.org/en/download/
2)安装NodeJS
运行node-v8.11.3-x64.msi 之后,cmd中输入node -v 检查node 是否安装成功。
3)安装grunt
在node安装路径下,使用命令安装:npm install -g grunt-cli 安装grunt。
安装结束后,使用命令grunt -version查看是否安装成功
4)安装elasticsearch-head插件
- https://github.com/mobz/elasticsearch-head,下载zip包 解压:D:\elk\elasticsearch-head-master
- 安装pathomjs:
需在D:\elk\elasticsearch-head-master 下进入cmd中使用命令npm install安装pathomjs - 修改master 节点的跨域配置,在elasticsearch.yml 中追加以下内容。
http.cors.enabled: true #允许跨域
http.cors.allow-origin: "*"
- 使用命令npm start启用服务:在head-master安装路径下使用命令npm run start
- 浏览器访问效果如下:http://localhost:9100/
注:图片是已经创建了索引的效果图
Cerebro 的安装
下载地址:https://github.com/lmenezes/cerebro/releases
elasticsearch基础及其使用
1.ES基本概念
- 集群与节点:一个集群由由多个若干节点组成,节点类似于一个提供数据的服务
- 索引: 含有相同属性的文档集合,类似于(database)
- 类型Type: 索引可以定义一个或多个类型,文档必须属于一个类型;类似于(table)
- 文档:文档是可以被索引的基本数据单元; 类似于 (row)
- 分片:每个索引都有多个分片,每个分片是一个Lucene 索引。
- 备份:拷贝一份分片就完成了分片的备份。
【注】索引创建后就不能修改分片的数量了,而备份是可以动态修改的
2.数据类型
核心类型 字符串类型 string,text,keyword |
整数类型 integer,long,short,byte
浮点类型 double,float,half_float,scaled_float
逻辑类型 boolean
日期类型 date
范围类型 range
二进制类型 binary
复合类型 数组类型 array
对象类型 object
3.ES基本使用
es是以RESTFul风格来命名API的,其API的基本格式如下:
【1】http://ip:port/<索引>/<类型>/<文档id>
该格式从es7.0.0开始,移除Type(类型)这个概念,新的基本格式如下:
【2】http://ip:port/<索引>/_doc/<文档id>
Type(类型)字段那里变为固定值 _doc
常用的http方法: GET/PUT/POST/DELETE
4.索引的相关操作
参考博客: (操作)
参考博客:https://www.jianshu.com/p/8a0df3bf068d (返回字段定义)
- 索引的创建
通过elasticsearch-head可视化工具创建或者postman来创建
head插件创建:非结构化索引和结构化索引:
【注】“mappings”: { },为空即为非结构化的索引:即book就是非结构化的索引
5.Api操作
略