ElasticSearch基础
  eHipUjOuzYYH 2023年11月13日 18 0

1.ES基本概念介绍

1.1 ES是什么

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

1.2 ES主要功能

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

1.3 ES相关术语

1.3.1 文档 Document

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

ElasticSearch基础_字段

1.3.2 索引 Index

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

ElasticSearch基础_字段_02

1.3.3 字段 Filed

在 ES 中,Document就是一个 Json Object,一个Json Object其实是由多个字段组成的,每个字段它有不同的数据类型

常见的字段数据类型
字符串:text、keyword。
数值型:long,integer,short,byte,double,float
布尔:boolean
日期:date
二进制:binary
范围类型:integer_range,float_range,long_range,double_range,date_range

ElasticSearch基础_字段_03

1.3.4 ES术语总结

ES索引、文档、字段关系小结:
一个索引里面存储了很多的 Document 文档,一个文档就是一个json object,一个json object是由多个不同或相同的 filed 字段组成;

ElasticSearch基础_搜索_04

1.4 ES操作方式

ES 的操作和我们传统的数据库操作不太一样,它是通过 RestfulAPI 方式进行操作的,其实本质上就是通过 http 的方式去变更我们的资源状态;
通过 URI 指定要操作的资源,比如 Index、Document;通过 Http Method 指定要操作的方法,如 GET、POST、PUT、DELETE;
常见操作 ES 的两种方式:Curl、Kibana DevTools

ElasticSearch基础_搜索_05

1.4.1 Curl命令操作ES

# 存数据
[root@es-node1 ~]# curl -XPOST  \
 'http://127.0.0.1:9200/bertwu_index/_doc/1' \
 -H "Content-Type: application/json" \
 -d '{
 "name":"tom",
 "age":18,
 "salary": 1000000
 }'
{"_index":"bertwu_index","_type":"_doc","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}

# 获取数据
[root@es-node1 ~]# curl -XGET "http://127.0.0.1:9200/bertwu_index/_doc/1"
{"_index":"bertwu_index","_type":"_doc","_id":"1","_version":1,"_seq_no":0,"_primary_term":1,"found":true,"_source":{
"name":"tom",
"age":18,
"salary": 1000000
}

1.4.2 Kibana操作ES

1、安装es
rpm -ivh elasticsearch-7.8.1-x86_64.rpm 
vim /etc/elasticsearch/jvm.options # 如果内存小可以适当修改最小堆内存与最大堆内存
-Xms512m
-Xmx521m
systemctl daemon-reload
systemctl enable elasticsearch.service 
systemctl start elasticsearch.service

2、# 安装kibana
rpm -ivh kibana-7.8.1-x86_64.rpm
# 配置kibana
grep "^[a-Z]" /etc/kibana/kibana.yml
server.port: 5601 #kibana默认监听端口
server.host: "0.0.0.0" #kibana监听地址段
elasticsearch.hosts: ["http://localhost:9200"] # kibana丛coordinating节点获取数据
i18n.locale: "zh-CN" #kibana汉化
# 启动kibana
[root@kibana ~]# systemctl start kibana
[root@kibana ~]# systemctl enable kibana

ElasticSearch基础_搜索_06

1.5 ES 索引API

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

1.5.1创建索引

# 创建索引
PUT /oldxu_index

#查看所有已存在的索引
GET _cat/indices

ElasticSearch基础_搜索_07

1.5.2 删除索引

#删除索引
DELETE /oldxu_index

ElasticSearch基础_字段_08

1.6 ES文档 API

ES 为索引添加文档,有专门的 Document API
创建文件
查询文档
更新文档
删除文档

1.6.1 创建文档

#创建一个文档(指定ID)
POST /oldxu_index/_doc/1
{
  "username": "oldxu",
  "age": 18,
  "salary": 1000000
}

ElasticSearch基础_字段_09

创建文档,不指定ID

ElasticSearch基础_搜索_10

ElasticSearch基础_elasticsearch_11

1.6.2 查询文档

查询文档,指定要查询的文档id

ElasticSearch基础_字段_12

查询文档,搜索所有文档,用_search

ElasticSearch基础_字段_13

查询索引下特定文档:

ElasticSearch基础_搜索_14

GET /bertwu_index/_search
{
  "query": {
    "match": {
      "role": "射手"
    }
  }
}

1.6.3 批量创建文档

es 允许通过 _bulk 一次创建多个文档,从而减少网络传输开销,提升写入速率
#批量创建document
POST _bulk
{"index":{"_index":"tt","_id":"1"}}
{"name":"oldxu","age":"18"}
{"create":{"_index":"tt","_id":"2"}}
{"name":"oldqiang","age":"30"}
{"delete":{"_index":"tt","_id":"2"}}
{"update":{"_id":"1","_index":"tt"}}
{"doc":{"age":"20"}}

ElasticSearch基础_elasticsearch_15

1.6.4 批量查询文档

es允许通过 _mget 一次查询多个文档
#批量查询document
GET _mget
{
  "docs": [
    {
     "_index": "tt",
      "_id": "1"
    },
    {
      "_index": "tt",
      "_id": "2"
    }
  ]
}

ElasticSearch基础_elasticsearch_16

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  L83A5jZvvg3Q   2023年11月22日   17   0   0 HTTP重定向字段
  L83A5jZvvg3Q   2023年11月22日   27   0   0 客户端HTTP字段