es的安装和部署

1.elasticsearch安装部署

1.1安装

下载地址:https://www.elastic.co/cn/downloads/(我下载的是7.6.1)
然后解压即可

1.2目录

es的后台运行 es怎么部署_elasticsearch


1.bin 启动文件目录

2.config 配置文件目录

        1og4j2 日志配置文件

         jvm.options java 虚拟机相关的配置

         elasticsearch.ym1 elasticsearch 的配置文件!

3.lib 相关jar包

4.modules 功能模块目录

5.plugins 插件目录

1.3启动

检查自己的Java环境是否配置好

es的后台运行 es怎么部署_大数据_02


双击,正常运作可以看到以下内容

es的后台运行 es怎么部署_数据_03

在网址中输入:localhost:9200 测试一下,看到如下说明启动成功!

es的后台运行 es怎么部署_elasticsearch_04

1.4 安装可视化界面

elasticsearch-head

(只做数据展示工具,查询语句用kibana)

1.下载地址:https://github.com/mobz/elasticsearch-head
2.安装:解压即可
3.启动

cd elasticsearch-head 
#安装相关依赖
npm install
#启动
npm run start
#访问
http://localhost:9100/

如下:

es的后台运行 es怎么部署_elasticsearch_05


es的后台运行 es怎么部署_数据_06


此时存在跨域问题(只有当两个页面同源,才能交互)

同源(端口,主机,协议三者都相同)

开启跨域:在elasticsearch解压目录config下elasticsearch.yml中添加:

# 开启跨域
http.cors.enabled: true
# 所有人访问
http.cors.allow-origin: "*"

重启elasticsearch

访问网址: http://localhost:9100,连接

es的后台运行 es怎么部署_搜索引擎_07

1.5 ElasticSearch安装为Windows服务

1.elasticsearch的bin目录下有一个elasticsearch-service.bat

2.cmd 进入bin目录下执行: elasticsearch-service.bat install

es的后台运行 es怎么部署_数据_08


3.查看电脑服务es已经存在了

安装kibana

1. 安装

1.下载地址: https://www.elastic.co/cn/downloads/2.安装: 解压即可

3.启动: 双击

es的后台运行 es怎么部署_大数据_09


es的后台运行 es怎么部署_数据_10


访问网址: http://localhost:5601kibana汉化: 编辑器打开 /config/kibana.yml,添加:i18n.locale: "zh-CN" 重启kibana:已经汉化

es的后台运行 es怎么部署_大数据_11

2.基本使用:

基本Rest命令说明:

es的后台运行 es怎么部署_数据_12

2.1 索引以及文档的创建、查询、更新、删除

1.创建:
(1)索引的创建

PUT /索引名

es的后台运行 es怎么部署_大数据_13


(2)文档的创建

PUT /索引名/文档类型/文档id

es的后台运行 es怎么部署_大数据_14


在elasticsearch-head中查看,添加成功

es的后台运行 es怎么部署_es的后台运行_15

(3)创建索引规则

es的后台运行 es怎么部署_es的后台运行_16


es的后台运行 es怎么部署_数据_17


2.查询:

(1)获取索引信息

GET 索引名
#获取该索引信息 

GET 索引名/_mapping
#获取索引的映射规则

es的后台运行 es怎么部署_大数据_18


es的后台运行 es怎么部署_elasticsearch_19


(2)获取文档信息

GET 索引名/类型名/文档id

es的后台运行 es怎么部署_搜索引擎_20


(3)补充常用命令 GET _cat/… 获取es集群的信息

GET _cat/health
#查看集群的健康值

GET _cat/indices?v
#查看es包含的所有索引的信息

es的后台运行 es怎么部署_搜索引擎_21


es的后台运行 es怎么部署_es的后台运行_22

一些复杂查询:查询匹配

match:匹配(会使用分词器解析(先分析文档,然后进行查询))

_source:过滤字段

sort:排序

form、size 分页

es的后台运行 es怎么部署_数据_23


多条件查询:

must 相当于 and
should 相当于 or
must_not 相当于 not (... and ...)
filter 过滤

es的后台运行 es怎么部署_搜索引擎_24

3.索引的更新:

先创建一个索引,往里面添加三条数据:

es的后台运行 es怎么部署_搜索引擎_25

POST /索引名/类型名/文档id/_update
#修改索引内容,一定要注意加上"doc"标签

es的后台运行 es怎么部署_大数据_26


4.删除:

(1)删除索引

DELETE 索引名

es的后台运行 es怎么部署_大数据_27


(2)删除索引中的某个文档

DELETE 索引名/类型名/文档id

es的后台运行 es怎么部署_搜索引擎_28

3.索引以及文档的查询

1.简单查询

<这里我自己安装了ik分词器,所以可以实现部分匹配 >

GET /test2/_search?q=name:"张"
#获取test2索引中名字中含有"张"的文档信息

es的后台运行 es怎么部署_elasticsearch_29

2.复杂查询

1.模糊查询
#match是模糊查询,term是精确查询。

#term和match只管传入的查询条件是否分词,比如“晚会”使用match可以被分词成“晚”“会”两个词进行查询,term不分词就直接用“晚会”进行查询。
#(总结,模糊查询既拆分输入的关键字,也拆分被查询的字段;精确查询只拆分被查询的字段)

es的后台运行 es怎么部署_搜索引擎_30


es的后台运行 es怎么部署_数据_31

2.过滤不想看的字段
_source: []
#过滤字段

es的后台运行 es怎么部署_数据_32

3.排序
sort:
#排序

此时我又往test2中添加了一些测试数据,如下

es的后台运行 es怎么部署_数据_33


按照年龄进行排序

es的后台运行 es怎么部署_数据_34

4.分页查询
from:从查询结果的第几个开始显示
size:一个页面显示几个

es的后台运行 es怎么部署_搜索引擎_35

5.布尔值bool查询
must:相当于逻辑与 AND
should: 相当于逻辑或 OR
must_not: 实现的是“逻辑非”NOT
filter:过滤器

es的后台运行 es怎么部署_es的后台运行_36


must:

es的后台运行 es怎么部署_数据_37


should:

es的后台运行 es怎么部署_es的后台运行_38


must_not:

es的后台运行 es怎么部署_搜索引擎_39


filter:

es的后台运行 es怎么部署_es的后台运行_40

6.模糊查询的多条件查询
#多个条件直接用“空格”隔开,这一点比MySQL数据库查询方便得多。

es的后台运行 es怎么部署_elasticsearch_41

7.高亮查询和自定义高亮样式

es的后台运行 es怎么部署_数据_42


es的后台运行 es怎么部署_数据_43

3.聚合查询

两个核心概念bucket,metric:
对每个组内的数据进行聚合分析,分组,就是bucket
对一个bucket执行的某种聚合分析的操作,比如说求平均值,求最大值,求最小值,就是metric

现在es新建一个索引,添加如三条数据:

es的后台运行 es怎么部署_es的后台运行_44


1.根据商品名称计算每个商品数量

#size:只获取聚合结果,而不执行聚合原始数据
#aggs:固定语法,要对一份数据执行分组聚合操作
#group_by_name:就是对每个aggs,都要起一个名字,这个名字是随机的,你随便取什么都ok
#terms:根据字段的值进行分组
#field:根据指定的字段的值进行分组
对于返回的数据:
#hits.hits:指定了size是0,所以hits.hits为空,否则会把执行聚合的那些原始数据给你返回回来
#aggregations:聚合结果                         
#group_by_name:我们指定的某个聚合的名称
#buckets:根据我们指定的field划分出的buckets           
#key:每个bucket对应的那个值
#doc_count:这个bucket分组内,有多少个数据          
 默认的排序规则:按照doc_count降序排序

es的后台运行 es怎么部署_搜索引擎_45

2.统计郑州地区的个数

es的后台运行 es怎么部署_大数据_46


3.计算每个商品下的平均价格/最小价格/最大价格/总价

#count:buckets,terms,自动就会有一个doc_count,就相当于是count
#avg:avg aggs 求平均值
#max:求一个bucket内,指定field值最大的那个数据
#min:求一个bucket内,指定field值最小的那个数据
#sum:求一个bucket内,指定field值的总和先分组,再算每组的平均值

es的后台运行 es怎么部署_es的后台运行_47


4.先计算出平均价格,在让平均价格按照从大到小排序

"collect_mode"
#对于子聚合的计算,有两种方式:
#depth_first 直接进行子聚合的计算
#breadth_first 先计算出当前聚合的结果,针对这个结果在对子聚合进行计算。
"order": { "avg_price": "desc" }

es的后台运行 es怎么部署_es的后台运行_48


5.按照指定的价格范围区间进行分组,然后在每组内再按照name进行分组,最后再计算每组的平均价格

"ranges": [{},{}]

es的后台运行 es怎么部署_搜索引擎_49