ElasticSearch官网:http://www.elasticsearch.org
一、安装ES
下载:
https://www.elastic.co/downloads/elasticsearch
使用:
1.Download and unzip Elasticsearch
2.Run bin/elasticsearch (or bin\elasticsearch.bat on Windows)
3.Run curl http://localhost:9200/ or Invoke-RestMethod http://localhost:9200 with PowerShell
tips:
1. ElasticSearch对JRE的版本是敏感的,新版本需要jdk1.8以上。
2.必须禁止JRE的自动更新。
3.需要配置elasticsearch.yml中network.host: 127.0.0.1,否则在Java请求中报NoNodeAvailable
4.集群名称默认elasticsearch,配置elasticsearch.yml中cluster.name: my-application
【控制面板】-【Java】-【更新】-去除【自动检查更新】
二、安装head插件
head插件是ES管理工具,elasticsearch 5.x及以上,head需要node环境。
1、安装node环境
网址:https://nodejs.org/en/download/ 下载Windows版msi的
安装完后打开cmd查看版本node -v
2、安装grunt构建工具
npm install -g grunt-cli
安装完后打开cmd查看版本grunt -version
3.下载zip文件
https://github.com/mobz/elasticsearch-head
Running with built in server
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/
(默认5个分片,1一个备份,如果只有一个节点的话,会报黄,可以将备份设置为0)
安装过程中报错:
解决:修改npm代理地址
npm config set registry http://registry.cnpmjs.org
elasticsearch和head在不同的进程中,head管理elasticsearch需要做以下配置:
1.在E:\ADAM\wrok\Elasticsearch\elasticsearch-6.4.0\config中elasticsearch.yml添加(冒号后有空格):
#如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.enabled: true
#如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
http.cors.allow-origin: "*"
2.启动elasticsearch
进入E:\ADAM\wrok\Elasticsearch\elasticsearch-6.4.0\bin
双击elasticsearch.bat
3.启动elasticsearch-head
npm run start
4.访问elasticsearch-head,集群健康值:green
http://localhost:9100/
三、将ElasticSearch 安装成Windows服务
cmd:
C:\Users\Administrator.XH-PC>e:
E:\>cd E:\ADAM\wrok\Elasticsearch\elasticsearch-6.4.0\bin
E:\ADAM\wrok\Elasticsearch\elasticsearch-6.4.0\bin>elasticsearch-service.bat install
分布式:
1.配置master:
2.配置slave
slave1:
slave2:
启动服务:
基础概念:
以下是 es 和 关系型数据库的简单类比
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices-> Types -> Documents -> Fields
分片:每个索引都有多个分片,每个分片是一个Lucene索引。
备份:拷贝一份分片就完成了分片的备份。
RESTFulAPI
API基本格式:http://<ip>:<port>/<索引>/<类型>/<文档id>
常用HTTP动词:GET/PUT/POST/DELETE
索引的命名必须是全部小写,不能以下划线开头。