文章目录
一、简介
Elasticsearch是一个实时、分布式的存储、搜索和分析引擎。
它使您可以近乎实时地快速存储、搜索和分析大量数据。它通常用作支持具有复杂搜索功能和要求的应用程序的底层引擎/技术。
它可以用于多种用途,但它擅长的一个上下文是索引半结构化数据流,例如日志或解码的网络数据包。
使用比较广泛的平台ELK(ElasticSearch, Logstash, Kibana)
二、下载安装 Elasticsearch
1、下载
参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html
不同版本点进去–》Set up Elasticsearch–》可查看需要的jdk版本:
注:1)运行es先决条件安装好jdk环境
2)最新版本一般需要最高的jdk环境(目前是jdk11),如果现有环境是1.8就不要选择最新的es版本了。
2、安装(window环境为例)
下载解压:
把压缩包下载下来、解压、双击执行elasticsearch.bat文件可以了,如果你的环境报错Failed starting 'elasticsearch-service-x64' service
即没有注册成windows服务
,则以管理员身份运行elasticsearch-service.bat install
3、验证
验证es服务是否成功启动,访问http://localhost:9200/,如果出现以下表示安装成功:
小结:Elasticsearch 使用端口
9200
来提供对其 REST API 的访问。如有必要,可配置此端口。
三、下载安装kibana
1、下载
注:版本选择跟es版本一致
参考地址:https://www.elastic.co/cn/downloads/past-releases#kibana
2、修改kibana.yml文件
将config下kibana.yml文件默认配置改成如下:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://127.0.0.1:9201" //修改成自己集群的端口号
kibana.index: ".kibana"
3、启动kibana
执行 bin/Kibana.bat , 等了 1分钟没反应, 然后出现一个 提示 权限的窗口,然后 不久 没反应,又启了两次,没反应,过了一会又启一下Kibana 窗口就出现 启动信息了(不知道是不是因为第一次启动太久)。终于 win 下 Kibana 启动完成。
访问http://localhost:5601验证:
四、使用Kibana实现ES基本的操作
可以使用任何发送 HTTP 请求的客户端(例如curl )与 Elasticsearch 进行交互 。您还可以使用 Kibana 的控制台向 Elasticsearch 发送请求。
1、打开dev Tools:
返回参数释义:
{
"took" : 1, --耗费了几毫秒
"timed_out" : false, --是否超时,false是没有,默认无timeout
"_shards" : { --执行请求时查询的分片信息
"total" : 12, --查询的分片数量
"successful" : 12, --成功返回结果的分片数量
"skipped" : 0, --跳过分片(es从 v5.6 开始引入了 pre-filter 机制(skipped):对于 Date 类型的 Range 查询,在对分片执行搜索之前,先检查一下分片是否包括被查询的数据范围,如果查询的范围与分片持有的数据没有交集,就跳过该分片。)
"failed" : 0 --失败的分片数量
},
"hits" : {
"total" : 10, --查询返回的文档总数,默认查询前10条数据,按_score降序排序
"max_score" : 1.0, --计算所得的最高分,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高
"hits" : [ --返回文档的hits数组
{
"_index" : ".kibana_1", --索引
"_type" : "doc", --类型
"_id" : "space:default", --标志符
"_score" : 1.0, --得分
"_source" : { --发送到索引的JSON对象
"space" : {
"name" : "Default",
"description" : "This is your default space!",
"color" : "#00bfb3",
"_reserved" : true
},
"type" : "space",
"updated_at" : "2021-07-06T04:55:35.788Z"
}
},
{
"_index" : ".kibana_1",
"_type" : "doc",
"_id" : "config:6.8.16",
"_score" : 1.0,
"_source" : {
"config" : {
"buildNum" : 20663
},
"type" : "config",
"updated_at" : "2021-07-06T04:55:53.733Z"
}
},
{
"_index" : "taskinfo",
"_type" : "taskReward",
"_id" : "2",
"_score" : 1.0,
"_source" : {
"name" : "two yagao",
"desc" : "youxiao fangzhu",
"price" : 25,
"producer" : "jiajieshi producer",
"tags" : [
"fangzhu"
]
}
},
{
"_index" : "taskinfo",
"_type" : "taskReward",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"name" : "one yagao",
"desc" : "gaoxiao meibai",
"price" : 30,
"producer" : "gaolujie producer",
"tags" : [
"meibai",
"fangzhu"
]
}
},
{
"_index" : "taskinfo",
"_type" : "taskReward",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"name" : "three caoben yagao",
"desc" : "caoben zhiwu",
"price" : 40,
"producer" : "zhonghua producer",
"tags" : [
"qingxin"
]
}
}
]
}
}
2、一些命令
查看集群中节点信息GET /_cat/nodes?v
查看集群中的索引信息GET /_cat/indices?v
查看集群健康信息集群状态(status)GET /_cat/health?v
- Green(正常)
- Yellow(正常,但是一些副本还没有分配)
- Red(非正常)
简化GET /_cat/indices?v&h=health,status,index
五、es重要概念
1、es重要概念
es重要概念:index索引, type类型, document文档, field字段
传统关系型数据库(eg: MySQL)与 Elasticsearch对比:
2、ElasticSearch索引基本操作
ElasticSearch索引基本操作:POST PUT GET DELETE
1)PUT创建一个索引:
PUT /索引名/类型名/文档id
{请求体}
2) GET获取索引信息
GET 索引/类型/文档
3) DELETE 删除文档
DELETE 索引/类型/文档
4)POST更新文档:
POST /索引名/类型名/文档id
{请求体}