目录
一、ES 基本概念介绍
1.1 ES 是什么
1.2 ES 主要功能
1.3 ES 相关术语
1.3.1 文档 Document
1.3.2 索引 Index
1.3.3 字段 Filed
1.3.4 ES 术语总结
二、ES 操作方式
2.1 Curl 命令操作 ES
2.1.1 安装 ElasticSearch
2.1.2 访问 ES
2.1.3 通过 curl 命令来完成索引的创建
2.2 Kibana 操作 ES
2.2.1 安装 Kibana
2.2.2 访问 kibana
2.2.3 使用 DEV Tools 操作 ES
三、ES 索引 API
3.1 创建索引
3.2 删除索引
四、ES 文档 API
4.1 创建文档
4.2 查询文档
4.3 批量创建文档
4.4 批量查询文档
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。
数据存储、数据搜索、数据分析。
Document 文档就是用户存在 es 中的一些数据,它是 es 中存储的最小单元。(类似于表中的一行数据。)注意:每个文档都有一个唯一的 ID 表示,可以自行指定,如果不指定 es 会自动生成。
索引其实是一堆文档 Document 的集合。(它类似数据库的中的一个表)
doc_index:
在 ES 中,Document 就是一个 Json Object,一个 Json Object 其实是由多个字段组成的,每个字段它有不同的数据类型。
doc_index:
字符串:text、keyword
数值型:long、integer、short、byte、double、float
布尔:boolean
日期:date
二进制:binary
范围类型:integer_range、float_range、long_range、double_range、date_range
ES 索引、文档、字段关系小结:
一个索引里面存储了很多的 Document 文档,一个文档就是一个 json object,一个 json object 是由多个不同或相同的 filed 字段组成。
ES 的操作和我们传统的数据库操作不太一样,它是通过 RestfulAPI 方式进行操作的,其实本质上就是通过 http 的方式去变更我们的资源状态。
通过 URI 指定要操作的资源,比如 Index、Document;
通过 Http Method 指定要操作的方法,如 GET、POST、PUT、DELETE。
常见操作 ES 的两种方式: Curl、Kibana DevTools。
Elasticsearch 7.8.1 下载地址:Elasticsearch 7.8.1 | Elastic
[root@elk101 ~]# ls
anaconda-ks.cfg elasticsearch-7.8.1-x86_64.rpm
[root@elk101 ~]# rpm -ivh elasticsearch-7.8.1-x86_64.rpm
# 内存调优。如果你虚机内存低于 1g 则可以进行相应的修改,否则这步可以省略
[root@elk101 ~]# vim /etc/elasticsearch/jvm.options
-Xms512g
-Xmx512g
[root@elk101 ~]# systemctl enable --now elasticsearch.service
ElasticSearch 服务默认会监听两个端口,一个是 9200(用于外部访问),一个是 9300(用于集群内部访问)。
[root@elk101 ~]# curl http://127.0.0.1:9200
{
"name" : "elk101",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "zx-ZKopVQyqH8zVu8IZvpw",
"version" : {
"number" : "7.8.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "b5ca9c58fb664ca8bf9e4057fc229b3396bf3a89",
"build_date" : "2020-07-21T16:40:44.668009Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
curl -XPUT 'http://127.0.0.1:9200/doc_index/_doc/1' \
-H "Content-Type: application/json" \
-d '{
"name":"sky",
"age":18,
"salary": 1000000
}'
# 获取数据
[root@elk101 ~]# curl -XGET 'http://127.0.0.1:9200/doc_index/_doc/1'
{"_index":"doc_index","_type":"_doc","_id":"1","_version":1,"_seq_no":0,"_primary_term":1,"found":true,"_source":{
"name":"sky",
"age":18,
"salary": 1000000
Kibana 7.8.1 下载地址:Kibana 7.8.1 | Elastic
[root@elk101 ~]# rpm -ivh kibana-7.8.1-x86_64.rpm
# 配置 kibana
[root@elk101 ~]# vim /etc/kibana/kibana.yml
# kibana 默认监听端口
server.port: 5601
# kibana 监听地址段
server.host: "0.0.0.0"
# kibana 内部域名
server.name: "elk.kibana"
# kibana 从 es 节点获取数据
elasticsearch.hosts: ["http://localhost:9200"]
# kibana 汉化
i18n.locale: "zh-CN"
[root@elk101 ~]# systemctl enable --now kibana.service
在浏览器访问(kibana ip):http://192.168.170.130:5601/
可以查看到监控信息:
# 在控制台输入
GET /doc_index/_search
es 有专门的 Index API,用于创建、更新、删除索引配置等。
创建索引 api 如下:
# 创建索引
PUT /test1_index
#查看所有已存在的索引
GET _cat/indices
#删除索引
DELETE /test1_index
ES 为索引添加文档,有专门的 Document API
创建文件
查询文档
更新文档
删除文档
创建文档,需要指定 ID:
# 创建一个文档(指定 ID)
POST /test2_index/_doc/1
{
"username": "sky2",
"age": 18,
"salary": 1000000
}
# 创建一个文档(不指定 ID)
POST /test2_index/_doc
{
"username": "sky3",
"age": 28,
"salary": 2000000
}
注意:创建文档时,如果索引不存在,ES 会自动创建对应的 index 和 type。
# 查询文档,指定要查询的文档 id
GET /test2_index/_doc/1
# 查询文档,搜索所有文档,用 _search
GET /test2_index/_search
{
"query": {
"term": {
"_id": "1"
}
}
}
}
es 允许通过 _bulk 一次创建多个文档,从而减少网络传输开销,提升写入速率。
# 批量创建 document
POST _bulk
{"index":{"_index":"tt","_id":"1"}}
{"name":"sky3","age":"18"}
{"create":{"_index":"tt","_id":"2"}}
{"name":"zhangsan","age":"30"}
{"delete":{"_index":"tt","_id":"2"}}
{"update":{"_id":"1","_index":"tt"}}
{"doc":{"age":"20"}}
es 允许通过 _mget 一次查询多个文档。
#批量查询document
GET _mget
{
"docs": [
{
"_index": "tt",
"_id": "1"
},
{
"_index": "tt",
"_id": "2"
}
]
}
上一篇文章:【Elastic (ELK) Stack 实战教程】01、Elastic Stack 概述_Stars.Sky的博客-CSDN博客
下一篇文章:【Elastic (ELK) Stack 实战教程】03、ElasticSearch 集群搭建_Stars.Sky的博客-CSDN博客