【ElasticSearch8.X】学习笔记(二)

四、基础操作

在本人blog中ElasticSearch7.x使用postman进行演示过基础操作
因此在ElasticSearch8.x通过Kibana进行演示

4.1、索引操作

4.1.1、创建索引

ES 软件的索引可以类比为 MySQL 中表的概念,创建一个索引,类似于创建一个表
ES 不允许修改索引

# 创建索引
# PUT+索引名
PUT myindex

# 增加索引带自定义配置(JSON格式)
PUT test_index
{
  "aliases": {
    "test1": {}
  }
}

在这里插入图片描述

4.1.2、查询指定索引

根据索引名称查询指定索引,如果查询到,会返回索引的详细信息

# 查询索引
# GET 索引名称
GET myindex

在这里插入图片描述

4.1.3、查询所有索引

这里请求路径中的_cat 表示查看的意思,indices表示索引,所以整体含义就是查看当前 ES 服务器中的所有索引

# 查询索引
GET _cat/indices

在这里插入图片描述

4.1.4、 删除索引

删除指定已存在的索引

# 删除索引
# DELETE+索引名称
DELETE test_index

在这里插入图片描述

4.2、文档操作

4.2.1、创建文档

这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式
如果在创建数据时,指定唯一性标识,那么请求范式 POST,PUT 都可以
如果没有指定数据唯一性标识,只能使用 POST 请求

# 创建文档
# 创建文档
POST myindex/_doc/001
{
  "id" : 1001,
  "name" : "zhangsan",
  "age" : 30
}
POST myindex/_doc/002
{
  "id" : 1002,
  "name" : "lisi",
  "age" : 18
}
POST myindex/_doc/003
{
  "id" : 1004,
  "name" : "wangwu",
  "age" : 30
}
POST myindex/_doc/004
{
  "id" : 1004,
  "name" : "zhaoliu",
  "age" : 35
}

在这里插入图片描述

4.2.2、查询文档

根据唯一性标识可以查询对应的文档

# 查询文档
GET myindex/_doc/001

在这里插入图片描述

4.2.3、修改文档

修改文档本质上和新增文档是一样的,如果存在就修改,如果不存在就新增

# 修改文档
PUT myindex/_doc/001
{
  "age":20
}

在这里插入图片描述

4.2.4、删除文档

删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)

# 删除文档
DELETE myindex/_doc/001

在这里插入图片描述

4.2.5、查询所有文档

# 查询所有文档
GET myindex/_search

在这里插入图片描述

4.3、数据搜索

4.3.1、匹配查询文档

这里的查询表示文档数据中 JSON 对象数据中的 name 属性是lisi

GET myindex/_search
{
  "query": {
  "match": {
    "name": "lisi" #不会查出li si 此时查询关键字是lisi 而li si 的关键词是两个【li】【si】匹配不上
  }
  }
}

GET myindex/_search
{
  "query": {
    "term": {
      "name": {
        "value": "li si" #会查出li si 不会查出lisi  此时关键字是li si
      }
    }
  }
}

在这里插入图片描述

4.3.2、匹配查询字段

默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段,我们可以添加_source 的过滤

GET myindex/_search
{
  "_source": ["name","age"], 
  "query": {
    "term": {
      "name": {
        "value": "lisi"
      }
    }
  }
}

在这里插入图片描述

4.3.3、组合"or"

GET myindex/_search
{
  "_source": ["name","age"], 
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": "lisi"
          }
        },
        {
          "match": {
            "age": 35
          }
        }
      ]
    }
  }
}

在这里插入图片描述

4.3.4、排序

GET myindex/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

在这里插入图片描述

4.3.5、分页

GET myindex/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 2
}

在这里插入图片描述

4.3.6、分组

GET myindex/_search
{
 "aggs": {
   "ageGroup": {
     "terms": {
       "field": "age"
     }
   }
 },
 "size": 0 #只显示分组信息 不显示源信息
}

在这里插入图片描述

4.3.7、平均值

GET myindex/_search
{
 "aggs": {
   "ageAvg": {
     "avg": {
       "field": "age"
     }
   }
 },
 "size": 0
}

在这里插入图片描述

4.3.8、求和

GET myindex/_search
{
 "aggs": {
   "ageGroup": {
     "terms": {
       "field": "age"
     },
     "aggs": {
       "ageSum": {
         "sum": {
           "field": "age"
         }
       }
     }
   }
 },
 "size": 0
}

在这里插入图片描述

4.3.9、TopN

GET myindex/_search
{
 "aggs": {
   "Top3": {
     "top_hits": {
       "sort": [
         {
           "age": {
             "order": "desc"
           }
         }
         ], 
       "size": 3
     }
   }
 },
 "size": 0
}

在这里插入图片描述

五、 索引模板

我们之前对索引进行一些配置信息设置,但是都是在单个索引上进行设置。在实际开发中,我们可能需要创建不止一个索引,但是每个索引或多或少都有一些共性。比如我们在设计关系型数据库时,一般都会为每个表结构设计一些常用的字段,比如:创建时间,更新时间,备注信息等。elasticsearch 在创建索引的时候,就引入了模板的概念,你可以先设置一些通用的模板,在创建索引的时候,elasticsearch 会先根据你创建的模板对索引进行设置。

5.1、创建模板

# 模板名称小写
PUT _template/mytemplate
{
 "index_patterns" : [
 "my*"
 ],
 "settings" : {
 "index" : {
 "number_of_shards" : "1"
 }
 },
 "mappings" : {
 "properties" : {
 "now": {
 "type" : "date",
 "format" : "yyyy/MM/dd"
 }
 }
 }
}

在这里插入图片描述

5.2、查看模板

GET /_template/mytemplate

在这里插入图片描述

5.3、验证模板是否存在

HEAD /_template/mytemplate

在这里插入图片描述

5.4、 创建索引

在创建索引的时候已经定义匹配的索引了 以my开头

PUT mytest

5.5、删除模板

DELETE /_template/mytemplate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值