Elasticsearch实战(一)---安装及基本语法使用

Elasticsearch实战-安装使用

1.ElasticSearch 安装及使用
1.1 Es安装

我使用的是本地Es,安装在本地,单节点设置,使用版本是

#es 要和 kibana使用的是一个版本
Elasticsearch 版本 elasticsearch-7.10.0
Kibana 版本 kibana-7.10.0

elasticsearch.yml es配置文件

# 我只显示了有用的信息
# ======================== Elasticsearch Configuration =========================

# es节点名字
node.name: node-1

# ----------------------------------- Memory -----------------------------------

# 节点Host
network.host: 127.0.0.1

# 节点端口
http.port: 9200

# 访问的host
discovery.seed_hosts: ["127.0.0.1"]

# 集群主节点
cluster.initial_master_nodes: ["node-1"]

#好像是恢复启动节点
gateway.recover_after_nodes: 1

# Allow cors origin 跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

1.2 kibana安装使用

Kibana 配置 kibana.yml

#kibaba端口
# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601

# 访问Host
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "127.0.0.1"

#链接ES的地址
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://localhost:9200"]

1.3 启动

ES启动 elasticsearch.bat
访问 http://localhost:9200/
在这里插入图片描述
Kibana启动 kibana.bat
访问 http://localhost:5601/
在这里插入图片描述
点击开发工具 Dev Tools ,进入ES操作页面
在这里插入图片描述

2.准备数据

我们先准备一下数据,

[
    {
        "empId":"111",
        "name":"测试1",
        "age":20,
        "sex":"男",
        "mobile":"19000001111",
        "deptName":"技术部",
        "address":"湖北省武汉市洪山区光谷大厦"
    },
    {
        "empId":"222",
        "name":"测试2",
        "age":25,
        "sex":"男",
        "mobile":"19000002222",
        "deptName":"技术部",
        "address":"湖北省武汉市江汉路"
    },
    {
        "empId":"333",
        "name":"测试3",
        "age":30,
        "sex":"男",
        "mobile":"19000003333",
        "deptName":"技术部",
        "address":"湖北省武汉市经济开发区"
    },
    {
        "empId":"444",
        "name":"测试4",
        "age":20,
        "sex":"女",
        "mobile":"19000004444",
        "deptName":"测试部",
        "address":"湖北省武汉市沌口开发区"
    },
    {
        "empId":"555",
        "name":"测试5",
        "age":20,
        "sex":"女",
        "mobile":"19000005555",
        "deptName":"测试部",
        "address":"湖北省武汉市东湖隧道"
    },
    {
        "empId":"666",
        "name":"测试6",
        "age":30,
        "sex":"女",
        "mobile":"19000006666",
        "deptName":"测试部",
        "address":"湖北省武汉市江汉路"
    },
    {
        "empId":"777",
        "name":"测试7",
        "age":60,
        "sex":"女",
        "mobile":"19000007777",
        "deptName":"测试部",
        "address":"湖北省黄冈市边城区"
    },
    {
        "empId":"888",
        "name":"测试8",
        "age":40,
        "sex":"女",
        "mobile":"19000008888",
        "deptName":"技术部",
        "address":"湖北省武汉市江汉大学"
    }
]

操作一下, 方便后面进行简单语法操作, 然后把Json串中的8条记录,分别插入到Es中
我们依次 执行
put /test/_doc/1 插入 第1条数据记录
put /test/_doc/2 插入 第2条数据记录
put /test/_doc/… 插入 第…条数据记录
put /test/_doc/8 插入 第8条数据记录

PUT /test/_doc/1
  {
        "empId":"111",
        "name":"测试1",
        "age":20,
        "sex":"男",
        "mobile":"19000001111",
        "deptName":"技术部",
        "address":"湖北省武汉市洪山区光谷大厦"
    }
         
2.1 插入记录

PUT /test/_doc/8 , 向 test索引库中插入一个文档 JSON格式数据,这条数据记录的主键ID是8

  • test就是索引,就是mysql的DB
  • _doc就是文档类型,就是mysql的表, ES7.x以后只有一种结构就是_doc
  • 8就是主键id
PUT /test/_doc/8
{
        "empId":"888",
        "name":"测试8",
        "age":40,
        "sex":"女",
        "mobile":"19000008888",
        "deptName":"技术部",
        "address":"湖北省武汉市江汉大学"
    }
2.2 全量查询

GET /test/_search
查询 test 索引下的所有数据 看到8条记录
在这里插入图片描述

2.3 DSL查询全部

DSL语法查询, DSL 是将查询语句放到 requetsBody中去请求http请求

GET /test/_search
{
  "query": {
    "match_all": {
    }
  }
}

依旧可以看到有8条记录
在这里插入图片描述

2.4 主键查询

GET /test/_doc/8 查询 test库下面的 文档类型 主键id为8的记录, 查询结果如下:

{
  "_index" : "test",
  "_type" : "_doc",
  "_id" : "8",
  "_version" : 1,
  "_seq_no" : 9,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "empId" : "888",
    "name" : "测试8",
    "age" : 40,
    "sex" : "女",
    "mobile" : "19000008888",
    "deptName" : "技术部",
    "address" : "湖北省武汉市江汉大学"
  }
}

在这里插入图片描述

2.5 查看数据存储结构

GET /test/_mapping 可以看到 这8条记录的结构
type:text 文本类型
type:long 数字类型
type: keyword 关键字

{
  "test" : {
    "mappings" : {
      "properties" : {
        "address" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "age" : {
          "type" : "long"
        },
        "deptName" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "empId" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "mobile" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "sex" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

2.6 修改数据

插入一条数据

#插入一条数据
put /jzj/_doc/1
{
  "name":"jzj1",
  "age":10
}

查询 get /jzj/_doc/1 可以看到 version:1 版本:1

{
  "_index" : "jzj",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "jzj1",
    "age" : 10
  }
}

再次 插入一条修改后的 数据

#插入一条修改的 数据 jzj2,age=20
put /jzj/_doc/1
{
  "name":"jzj2",
  "age":20
}

再次查询 get /jzj/_doc/1 version:2 版本增加,且数据变化,是新的数据

{
  "_index" : "jzj",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 1,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "jzj2",
    "age" : 20
  }
}
2.8 update更新数据

POST /jzj/_update/1 更新主键为1的 记录 , 记住是POST POST POST

POST /jzj/_update/1
{
  "doc":{
  "name":"xxx333"
  }
}

更新后 version:3
在这里插入图片描述
查询一下, GET /jzj/_doc/1 , name:xxx333 内容已经被更新上去
在这里插入图片描述

2.9 删除索引数据

DELETE /jzj

{
  "acknowledged" : true
}

再执行下查询 get /jzj/_doc/1 索引不存在
在这里插入图片描述

GET /jzj/_search 也是索引不存在 “type” : “index_not_found_exception”


至此 我们已经基本的可以安装,使用 Es完毕, 下一篇 我们介绍下ES的详细使用

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值