> 文档中心 > 【Elasticsearch】- elasticsearch文档数据的增删改查

【Elasticsearch】- elasticsearch文档数据的增删改查

文章目录

  • 创建文档并添加数据
  • 修改文档数据
    • 全量修改
    • 局部数据修改
  • 删除文档数据
  • 查询文档数据
    • 主键查询和全查询
    • 条件查询
    • 分页查询
    • 查询部分属性
    • 查询排序
    • 多条件查询
    • 范围查询
    • 完全匹配查询
    • 聚合查询
      • 分组
      • 求平均值

创建文档并添加数据

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

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

创建一个名为user的索引:

PUT : localhost:9200/user

【Elasticsearch】- elasticsearch文档数据的增删改查

向user索引中创建文档并添加数据:

POST : localhost:9200/user/_doc请求体:{    "name":"张三",    "age":18,    "sex":"男",    "email":"111222333@qq.com"}

【Elasticsearch】- elasticsearch文档数据的增删改查

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

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

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

【Elasticsearch】- elasticsearch文档数据的增删改查

修改文档数据

全量修改

PUT :localhost:9200/user/_doc/10001

【Elasticsearch】- elasticsearch文档数据的增删改查

局部数据修改

POST:localhost:9200/user/_update/10001

【Elasticsearch】- elasticsearch文档数据的增删改查

删除文档数据

DELETE : localhost:9200/user/_doc/10001
【Elasticsearch】- elasticsearch文档数据的增删改查

查询文档数据

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

{    "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
【Elasticsearch】- elasticsearch文档数据的增删改查

查询所有数据

GET : localhost:9200/user/_search

【Elasticsearch】- elasticsearch文档数据的增删改查

条件查询

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

GET : localhost:9200/user/_search?q=name:王

【Elasticsearch】- elasticsearch文档数据的增删改查

方式二:请求中添加查询

GET : localhost:9200/user/_search{    "query":{ "match":{     "name":"王" }    }}

【Elasticsearch】- elasticsearch文档数据的增删改查

分页查询

GET : localhost:9200/user/_search{    "query":{ "match_all":{//查询所有     }    },    "from":0,//页码(从第0页开始)    "size":2//每页显示条数}

【Elasticsearch】- elasticsearch文档数据的增删改查

查询部分属性

GET : localhost:9200/user/_search{    "query":{ "match_all":{//查询所有     }    },    "from":0,//页码(从第0页开始)    "size":2,//每页显示条数    "_source":["name","age"]//需要查询的属性}

【Elasticsearch】- elasticsearch文档数据的增删改查

查询排序

GET : localhost:9200/user/_search{    "sort":{ "age":{     "order":"asc"//按年龄升序查询 }    }}

【Elasticsearch】- elasticsearch文档数据的增删改查

多条件查询

1. 多个条件同时满足(and)

GET : localhost:9200/user/_search{    "query":{ "bool":{     "must":[  {      "match":{   "name":"王"      }  },  {      "match":{   "sex":"男"      }  }     ] }    }}

【Elasticsearch】- elasticsearch文档数据的增删改查

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

GET : localhost:9200/user/_search{    "query":{ "bool":{     "should":[  {      "match":{   "name":"王"      }  },  {      "match":{   "name":"张"      }  }     ] }    }}

【Elasticsearch】- elasticsearch文档数据的增删改查

范围查询

GET : localhost:9200/user/_search{    "query":{ "bool":{     "filter":{  "range":{      "age":{   "gt":22   // gt: > 大于(greater than)// lt: = 大于或等于(greater than or equal to)// lte: <= 小于或等于(less than or equal to)      }  }     } }    }}

【Elasticsearch】- elasticsearch文档数据的增删改查

完全匹配查询

GET : localhost:9200/user/_search{    "query":{ "match_phrase":{     "name":"1+1=王" }    }}

【Elasticsearch】- elasticsearch文档数据的增删改查

聚合查询

分组

GET : localhost:9200/user/_search{"aggs":{//聚合操作"age_group":{//名称,随意起名"terms":{//分组"field":"age"//分组字段}}}}

【Elasticsearch】- elasticsearch文档数据的增删改查

求平均值

GET : localhost:9200/user/_search{"aggs":{//聚合操作"age_avg":{//名称,随意起名"avg":{//求平均值"field":"age"//求平均值的字段}}}}

【Elasticsearch】- elasticsearch文档数据的增删改查

开发者涨薪指南 【Elasticsearch】- elasticsearch文档数据的增删改查 48位大咖的思考法则、工作方式、逻辑体系