【Elastic (ELK) Stack 实战教程】02、ElasticSearch 基础
创始人
2025-06-01 15:22:44

目录

一、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 批量查询文档


 

一、ES 基本概念介绍

1.1 ES 是什么

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。

1.2 ES 主要功能

数据存储、数据搜索、数据分析。

1.3 ES 相关术语

1.3.1 文档 Document

        Document 文档就是用户存在 es 中的一些数据,它是 es 中存储的最小单元。(类似于表中的一行数据。)注意:每个文档都有一个唯一的 ID 表示,可以自行指定,如果不指定 es 会自动生成。

1.3.2 索引 Index

索引其实是一堆文档 Document 的集合。(它类似数据库的中的一个表) 

doc_index:

1.3.3 字段 Filed

        在 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 

1.3.4 ES 术语总结 

ES 索引、文档、字段关系小结:

        一个索引里面存储了很多的 Document 文档,一个文档就是一个 json object,一个 json object 是由多个不同或相同的 filed 字段组成。

二、ES 操作方式

        ES 的操作和我们传统的数据库操作不太一样,它是通过 RestfulAPI 方式进行操作的,其实本质上就是通过 http 的方式去变更我们的资源状态。

  1. 通过 URI 指定要操作的资源,比如 Index、Document;

  2. 通过 Http Method 指定要操作的方法,如 GET、POST、PUT、DELETE。

常见操作 ES 的两种方式: Curl、Kibana DevTools。

2.1 Curl 命令操作 ES 

2.1.1 安装 ElasticSearch

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(用于集群内部访问)。

2.1.2 访问 ES

[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"
}

2.1.3 通过 curl 命令来完成索引的创建 

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

2.2 Kibana 操作 ES 

2.2.1 安装 Kibana

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 

2.2.2 访问 kibana

在浏览器访问(kibana ip):http://192.168.170.130:5601/

点击左侧导航栏的堆栈监测:

点击使用内部收集设置:

可以查看到监控信息:

2.2.3 使用 DEV Tools 操作 ES

# 在控制台输入
GET /doc_index/_search

三、ES 索引 API 

es 有专门的 Index API,用于创建、更新、删除索引配置等。

3.1 创建索引

创建索引 api 如下:

# 创建索引
PUT /test1_index#查看所有已存在的索引
GET _cat/indices

3.2 删除索引

#删除索引
DELETE /test1_index

四、ES 文档 API 

ES 为索引添加文档,有专门的 Document API

  • 创建文件

  • 查询文档

  • 更新文档

  • 删除文档

4.1 创建文档

创建文档,需要指定 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。 

4.2 查询文档

# 查询文档,指定要查询的文档 id
GET /test2_index/_doc/1

# 查询文档,搜索所有文档,用 _search
GET /test2_index/_search
{"query": {"term": {"_id": "1"}}}
}

4.3 批量创建文档

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"}}

4.4 批量查询文档

es 允许通过 _mget 一次查询多个文档。

#批量查询document
GET _mget
{"docs": [{"_index": "tt","_id": "1"},{"_index": "tt","_id": "2"}]
}

相关内容

热门资讯

玛雅人的五大预言 玛雅人预言2... 曾经玛雅人预言2012年是世界末日,但当时好像没有发生什么。没想到10年后的2022年,疫情,战争,...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...