ElasticSearch 快速入门

ElasticSearch 快速入门

docker 安装elastic search

安装

kibana 是 可视化界面

docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2

配置

为了后续创建docker容器时方便挂载,事先创建好配置目录和数据目录

#配置目录 和 数据目录
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

#编写配置文件 es可以被远程任何机器访问
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml

创建Elasticsearch容器并启动

# 9200是用户交互端口 9300是集群心跳端口
# -e指定是单阶段运行
# -e指定占用的内存大小,生产时可以设置32G
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2 


#如果报错了可以查看日志 
docker logs elasticsearch

#可能是数据挂载到了Linux中 权限不足 设置读写执行权限
chmod -R 777 /mydata/elasticsearch/

# 设置开机启动elasticsearch
docker update elasticsearch --restart=always

访问9200端口成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfGQ30ae-1624030979184)(ElasticSeatch.assets/image-20210618163439364.png)]

创建kibana容器并启动

# kibana指定了了ES交互端口9200  
# 5601为kibana主页端口
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://服务器IP地址:9200 -p 5601:5601 -d kibana:7.4.2


# 设置开机启动kibana
docker update kibana  --restart=always

https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html

_cat查询

GET请求

  • http://服务器IP地址:9200/_cat/nodes : 查看节点

    • 127.0.0.1 55 96 3 0.02 0.06 0.92 dilm * 566714ae5bbd
  • http://服务器IP地址:9200/_cat/health: 查看ES健康状态

    • 1624008550 09:29:10 elasticsearch green 1 1 3 3 0 0 0 0 - 100.0%
  • http://服务器IP地址:9200/_cat/master:查看 主节点

    • sBbf_lLHTJm7IYf6nFx5Xw 127.0.0.1 127.0.0.1 566714ae5bbd
  • http://服务器IP地址:9200/_cat/indices 查看所有索引

    • green open .kibana_task_manager_1 c_Y-ebbvT3mhaDzDHaFyOw 1 0 2 0 38.3kb 38.3kb
      green open .apm-agent-configuration B7k2J4H2TYKkAHq2wXGaUg 1 0 0 0 283b 283b
      green open .kibana_1 b1ULLtKpTA2I9u5vGrf7_Q 1 0 7 0 25.2kb 25.2kb
PUT,POST添加数据

PUT请求

  • http://服务器IP地址:9200/customer/external/1

    • 携带json数据

      {
          "name":"tcl"
      }
      
    • 响应结果

      {
          "_index": "customer",
          "_type": "external",
          "_id": "1",
          "_version": 1,
          "result": "created",
          "_shards": {
              "total": 2,
              "successful": 1,
              "failed": 0
          },
          "_seq_no": 0,
          "_primary_term": 1
      }
      

      索引是customer (类比数据库), 类型是external(类比表) ,文档id是1(类比记录),result表示创建

    • 再次添加该请求,响应结果

      {
          "_index": "customer",
          "_type": "external",
          "_id": "1",
          "_version": 2,
          "result": "updated",
          "_shards": {
              "total": 2,
              "successful": 1,
              "failed": 0
          },
          "_seq_no": 1,
          "_primary_term": 1
      }
      

      result变为update

POST请求

  • http://服务器IP地址:9200/customer/external

    • 携带json数据

      {
          "name":"cl"
      }
      
    • 响应结果

      {
          "_index": "customer",
          "_type": "external",
          "_id": "HZB9HnoBPv1-CBBCXbNj",
          "_version": 1,
          "result": "created",
          "_shards": {
              "total": 2,
              "successful": 1,
              "failed": 0
          },
          "_seq_no": 3,
          "_primary_term": 1
      }
      

      随机生成文档ID

    • 再次请求也是随机生成文档ID

PUT请求: 索引/类型/文档 是第一次添加则为添加数据否则为修改

POST请求: 可以不携带文档ID会随机生成,如果携带文档ID规则与PUT请求相同

GET查询数据与乐观锁

查询

http://服务器IP地址:9200/customer/external/1 + GET请求

响应结果

{
    "_index": "customer",
    "_type": "external",
    "_id": "1",
    "_version": 3,
    //_seq_no与_primary_term一同充当乐观锁 并发修改时先比较,比较相同才修改
    "_seq_no": 2,
    "_primary_term": 1,
    "found": true,
    //值
    "_source": {
        "name": "cl"
    }
}

乐观锁

http://服务器IP地址:9200/customer/external/1?if_seq_no=2&if_primary_term=1

乐观锁if_seq_no=2&if_primary_term=1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qUdhoWUV-1624030979187)(ElasticSeatch.assets/image-20210618175318123.png)]

随后 seq_no 被改变 如果有其他请求也要修改文档1 之前的序列化就不对了 就需要重查

PUT,POST修改数据

PUT,POST修改数据在添加数据时说明过,多次请求已有的文档就是修改

POST

http://服务器IP地址:9200/customer/external/1/_update

添加了新的json数据age

第一次请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-44PlpGE0-1624030979190)(ElasticSeatch.assets/image-20210618180142386.png)]

第二次请求 会与上一次对比 响应没增加版本号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iwnSEnQF-1624030979192)(ElasticSeatch.assets/image-20210618180207970.png)]

POST 带 _update 请求 会比上次进行对比,其他修改数据的请求则不会(每次都增加版本号)

POST 带 _update 请求 还可以多增加数据

删除文档/索引

DELETE

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eUZwNbLl-1624030979193)(ElasticSeatch.assets/image-20210618180923627.png)]

只能删除文档或索引,不能删除类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-00zDhN2d-1624030979195)(ElasticSeatch.assets/image-20210618181023602.png)]

批量增删改查BULK

_bulk

必须是POST请求

在kibana下测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FOgQa0ph-1624030979196)(ElasticSeatch.assets/image-20210618182316175.png)]

批量操作索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UlANiQj9-1624030979196)(ElasticSeatch.assets/image-20210618183840549.png)]

create是创建 index没则创建有则覆盖

测试数据

https://raw.githubusercontent.com/elastic/elasticsearch/7.4/docs/src/test/resources/accounts.json

POST bank/account/_bulk7

下文将对测试数据进行 ElasticSearch 基本使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值