前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【ES三周年】- Elasticsearch文档数据的增删改查

【ES三周年】- Elasticsearch文档数据的增删改查

原创
作者头像
用户6044099
发布2023-02-23 13:19:21
6250
发布2023-02-23 13:19:21
举报
文章被收录于专栏:Elastic-search

创建文档并添加数据

Elasticsearch中的文档就相当于MySQL数据库中的表,文档中的数据格式为JSON格式。

首先创建一个索引(数据库),然后在索引中创建文档(表),并添加数据。

创建一个名为user的索引:

PUT : localhost:9200/user
在这里插入图片描述
在这里插入图片描述
建文档并添加数据:

POST : localhost:9200/user/_doc

请求体:

{

代码语言:txt
复制
"name":"张三",
代码语言:txt
复制
"age":18,
代码语言:txt
复制
"sex":"男",
代码语言:txt
复制
"email":"111222333@qq.com"

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/c4f893a1dde14cb1936832d3bf5a3009.png)

如果在添加数据的时候没有指定id,Elasticsearch会自动生成一个随机id。  但是使用随机生成的id进行查询的时候会比较复杂,因此,我们也可以**手动给数据添加id**,

手动给数据添加id只需要在请求路径后面加上指定id即可,如下:

POST : localhost:9200/user/_doc/10001

PUT:localhost:9200/user/_doc/10001 (在指定id的条件下,可以使用PUT请求方式)

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/cf5ddc4adca34fc691c241f12f79df73.png)
# 修改文档数据
## 全量修改
```PUT :localhost:9200/user/_doc/10001```
在这里插入图片描述
在这里插入图片描述

局部数据修改

POST:localhost:9200/user/_update/10001
在这里插入图片描述
在这里插入图片描述
ETE : localhost:9200/user/_doc/10001
在这里插入图片描述
在这里插入图片描述

查询文档数据

在进行查询之前先向user索引中添加几条数据

代码语言:txt
复制
{
    "name":"李四",
    "age":16,
    "sex":"男",
    "email":"23434353@qq.com"
}
{
    "name":"1+1=王",
    "age":22,
    "sex":"男",
    "email":"123123123@qq.com"
}
{
    "name":"王五",
    "age":25,
    "sex":"女",
    "email":"wangwu@Outlook.com"
}
{
    "name":"curry",
    "age":30,
    "sex":"男",
    "email":"curry30@nba.com"
}

主键查询和全查询

根据id查询

GET : localhost:9200/user/_doc/10001
在这里插入图片描述
在这里插入图片描述
: localhost:9200/user/_search
在这里插入图片描述
在这里插入图片描述

条件查询

方式一:请求路径中添加查询

GET : localhost:9200/user/_search?q=name:王
在这里插入图片描述
在这里插入图片描述
查询

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"query":{
代码语言:txt
复制
    "match":{
代码语言:txt
复制
        "name":"王"
代码语言:txt
复制
    }
代码语言:txt
复制
}

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/0fe0f5aed3074423b2348dff2662f69c.png)
## 分页查询

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"query":{
代码语言:txt
复制
    "match_all":{			//查询所有
代码语言:txt
复制
    }
代码语言:txt
复制
},
代码语言:txt
复制
"from":0,					//页码(从第0页开始)
代码语言:txt
复制
"size":2					//每页显示条数

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/37cc517792d344a3b74d5904112f37e3.png)
## 查询部分属性

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"query":{
代码语言:txt
复制
    "match_all":{			//查询所有
代码语言:txt
复制
    }
代码语言:txt
复制
},
代码语言:txt
复制
"from":0,					//页码(从第0页开始)
代码语言:txt
复制
"size":2,					//每页显示条数
代码语言:txt
复制
"_source":["name","age"]			//需要查询的属性

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/7e8258700deb4cc9a5fbc6b11fe46e03.png)
## 查询排序

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"sort":{
代码语言:txt
复制
    "age":{
代码语言:txt
复制
        "order":"asc"		//按年龄升序查询
代码语言:txt
复制
    }
代码语言:txt
复制
}

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/b139cddd8dc24bf5b7d441984985544e.png)
## 多条件查询
**1. 多个条件同时满足(and)**

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"query":{
代码语言:txt
复制
    "bool":{
代码语言:txt
复制
        "must":[
代码语言:txt
复制
            {
代码语言:txt
复制
                "match":{
代码语言:txt
复制
                    "name":"王"
代码语言:txt
复制
                }
代码语言:txt
复制
            },
代码语言:txt
复制
            {
代码语言:txt
复制
                "match":{
代码语言:txt
复制
                    "sex":"男"
代码语言:txt
复制
                }
代码语言:txt
复制
            }
代码语言:txt
复制
        ]
代码语言:txt
复制
    }
代码语言:txt
复制
}

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/b6c5ee19def046c5a091b071032f378f.png)

**2. 满足多个条件中的一个(or)**

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"query":{
代码语言:txt
复制
    "bool":{
代码语言:txt
复制
        "should":[
代码语言:txt
复制
            {
代码语言:txt
复制
                "match":{
代码语言:txt
复制
                    "name":"王"
代码语言:txt
复制
                }
代码语言:txt
复制
            },
代码语言:txt
复制
            {
代码语言:txt
复制
                "match":{
代码语言:txt
复制
                    "name":"张"
代码语言:txt
复制
                }
代码语言:txt
复制
            }
代码语言:txt
复制
        ]
代码语言:txt
复制
    }
代码语言:txt
复制
}

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/aeb50bd15ef04f299c3243ee7a139251.png)
## 范围查询

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"query":{
代码语言:txt
复制
    "bool":{
代码语言:txt
复制
        "filter":{
代码语言:txt
复制
            "range":{
代码语言:txt
复制
                "age":{
代码语言:txt
复制
                    "gt":22
代码语言:txt
复制
                    // gt: > 大于(greater than)
代码语言:txt
复制
					// lt: < 小于(less than)
代码语言:txt
复制
					// gte: >= 大于或等于(greater than or equal to)
代码语言:txt
复制
					// lte: <= 小于或等于(less than or equal to)
代码语言:txt
复制
                }
代码语言:txt
复制
            }
代码语言:txt
复制
        }
代码语言:txt
复制
    }
代码语言:txt
复制
}

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/506c3212ce5f4cdaae7eb4933869f2f4.png)
## 完全匹配查询

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"query":{
代码语言:txt
复制
    "match_phrase":{
代码语言:txt
复制
        "name":"1+1=王"
代码语言:txt
复制
    }
代码语言:txt
复制
}

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/96dbd88330374ede8328e26f84e9efcc.png)

## 聚合查询
### 分组

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"aggs":{		//聚合操作
代码语言:txt
复制
	"age_group":{		//名称,随意起名
代码语言:txt
复制
		"terms":{		//分组
代码语言:txt
复制
			"field":"age"		//分组字段
代码语言:txt
复制
		}
代码语言:txt
复制
	}
代码语言:txt
复制
}

}

代码语言:txt
复制
![在这里插入图片描述](https://img-blog.csdnimg.cn/9b661ed0a9b74d3f8d3f317f46852a6f.png)
### 求平均值

GET : localhost:9200/user/_search

{

代码语言:txt
复制
"aggs":{		//聚合操作
代码语言:txt
复制
	"age_avg":{		//名称,随意起名
代码语言:txt
复制
		"avg":{		//求平均值
代码语言:txt
复制
			"field":"age"		//求平均值的字段
代码语言:txt
复制
		}
代码语言:txt
复制
	}
代码语言:txt
复制
}

}

代码语言:txt
复制
在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建文档并添加数据
    • 局部数据修改
    • 查询文档数据
      • 主键查询和全查询
        • 条件查询
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档