Elasticsearch语法知多少之基础语法

目录

目标

ES版本信息

索引属性信息

索引基本语法

查看全部索引

创建索引

查看索引是否存在

删除索引

删除索引下所有文档

查看索引

查看索引下所有文档

文档属性信息

文档基本语法

索引文档(创建文档)

删除文档

查询文档

修改文档


目标

掌握ES基础语法,通过基础语法实现常见的业务功能。后续会在其他博文中补充高级语法,包括聚合、通配符,高亮等操作。


ES版本信息

7.17.5


索引属性信息

{
  "索引名称" : {
    "aliases" : {索引库的所有别名},
    "mappings" : {映射类型,分为静态映射和动态映射。},
    "settings" : {
      "index" : {
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "索引分配的数据层"
            }
          }
        },
        "number_of_shards" : "索引库的分片数量",
        "provided_name" : "索引库名称",
        "creation_date" : "创建时间",
        "analysis" : {
          "analyzer" : {
            "default" : {
              "type" : "设置的分词器"
            }
          }
        },
        "number_of_replicas" : "索引库的副本数量",
        "uuid" : "oZDgdXWuSSSPaa9WKOYOMQ",
        "version" : {
          "created" : "7170599"
        }
      }
    }
  }
}

索引基本语法

查看全部索引

GET _cat/indices

创建索引

#创建一个名为my_db的索引。
PUT /my_db
#创建索引时指定副本数量,分片数量和分词器。
PUT /my_db
{
  "settings": {
    "analysis.analyzer.default.type":"ik_max_word",
    "number_of_replicas": 1,
    "number_of_shards": 1
  }
}

查看索引是否存在

#查看索引是否存在
HEAD /my_db

删除索引

#删除一个索引
DELETE /my_db

删除索引下所有文档

#删除my_class索引下的所有文档(不删除索引)。
POST /my_class/_delete_by_query
{
  "query": {
    "match_all": {}
  }
}

查看索引

#查看索引
GET /my_db

查看索引下所有文档

#查看my_class索引下所有的文档(分页展示,默认查询前十条数据。)。
GET /my_class/_search
#查看my_class索引下所有的文档(分页展示,从第2条开始,查询3条数据。)。
GET /my_class/_search?from=1&size=3
#查看my_class索引下所有的文档(分页展示),只返回姓名和性别字段。
GET /my_class/_search
{
  "_source": [
    "name","sex"
  ]
}

文档属性信息

{
    "_index":"文档所在的索引库",
    "_type":"文档类型",
    "_id":"唯一标识",
    "_score":分数,数字类型,表示搜索的相关性,
    "_source":{
        "属性key":"属性value"
    }
}

文档基本语法

索引文档(创建文档)

注意:PUT和POST都可以索引文档,但是POST索引文档可以不指定id自动生成id,而PUT索引文档则必须指定id。

#在my_class索引库下索引(创建)一个新文档,指定文档的id=1。
PUT /my_class/_doc/11
{
  "name":"马三娘",
  "province":"湖南省",
  "city":"长沙市",
  "county":"天心区",
  "address":"朱雀街永乐城千金一笑楼天字第一号客房",
  "sex":1,
  "favoriteNovels":["凡人修仙传","天龙八部","将夜"]
}
#在my_class索引库下索引(创建)一个新文档,自动生成id。
POST /my_class/_doc
{
  "name":"李燕",
  "province":"湖南省",
  "city":"长沙市",
  "county":"天心区",
  "address":"朱雀街永安城红袖楼十三号客房",
  "sex":0,
  "favoriteNovels":["诛仙","射雕英雄传","将夜"]
}

删除文档

#在my_class索引库下删除id=1的文档。
DELETE /my_class/_doc/1
#在my_class索引库下删除name=李燕的所有文档。
POST /my_class/_delete_by_query
{
  "query":{
    "match":{
      "name":"李燕"
    }
  }
}

查询文档

#在my_class索引库下查询id=1的文档。
GET /my_class/_doc/1
#在my_class索引库下查询id=1的文档,只返回姓名和性别。
GET /my_class/_doc/1?_source=name,sex
#在my_class索引库下查询id=1的文档,不返回业务数据。
GET /my_class/_doc/1?_source=false

修改文档

#修改my_class索引库下id=1的文档name为王五。备注:如果存在该文档则覆盖所有内容,不存在则创建。
PUT my_class/_doc/1
{
  "name":"王五"
}
#修改my_class索引库下id=2的文档name为张翠山。备注:如果存在该文档则只修改name这一个属性,否则提示不存在该文档。
POST /my_class/_update/2
{
  "doc": {
    "name":"张翠山"
  }
}
#并发场景下修改文档。
POST /my_class/_update/1?if_seq_no=113&if_primary_term=1
{
  "doc": {
    "name":"张翠山",
    "movies":["钢铁侠","美国队长"]
  }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值