(三)Elasticsearch的基本操作

186 阅读2分钟

1. 索引的操作

GET请求:
GET /index :查询索引信息

POST请求:
POST /index/_search: 查询文档,可以在请求体中添加json字符串来代表查询条件

PUT请求:
PUT /index : 创建一个索引,需要在请求体中指定索引的信息

DELETE 请求:
DELETE /index: 删除跑路

2. 文档的操作

2.1 新建文档

自动生成id

#添加文档,自动生成id
POST /book/_doc
{
  "name":"盘龙",
  "author":"我吃西红柿",
  "count":100000,
  "on-sale":"2001-01-01",
  "descr":"大小的血睛鬃毛狮,力大无穷的紫睛金毛猿,毁天灭地的九头蛇皇……"
}

手动指定id

#添加文档,手动指定id
PUT /book/_doc/1
{
  "name":"红楼梦",
  "author":"曹雪芹",
  "count":10000000,
  "on-sale":"2501-01-01",
  "descr":"中国古代章回体长篇小说,中国古典四大名著之一,一般认为是清代作家曹雪芹所著。"
}

2.2 修改文档

覆盖式修改

#添加文档,手动指定id
PUT /book/_doc/1
{
  "name":"红楼梦",
  "author":"曹雪芹",
  "count":1000444,
  "on-sale":"2501-01-01",
  "descr":"中国古代章回体长篇小说,小说以贾、史、王、薛四大家族的兴衰为背景,以富贵公子贾宝玉为视角,以贾宝玉与林黛玉、薛宝钗的爱情婚姻悲剧为主线,描绘了一批举止见识出于须眉之上的闺阁佳人的人生百态,展现了真正的人性美和悲剧美"
}

doc修改方式

#修改文档,使用doc方式
POST /book/_doc/1/_update
{
  "doc":{
      #指定需要修改的field和对应的值
    "count":566666
  }
}

2.3 删除文档

#根据id删除文档
DELETE /book/_doc/1

2.4 批量操作文档

批量处理可以一次请求中处理多个任务,使用_bulk API进行:

POST _bulk
{"index":{"_index":"person", "_id":1}}
{"name":"ytao","blog":"公众号 ytao","remark":"https://ytao.top"}
{"update":{"_index":"person", "_id":1}}
{"doc":{"blog":"ytao's blog"}}

批量获取文档,使用_mget API进行,通过一次指定多个文档 id,进行请求:

POST _mget
{
  "docs":[
    {
      "_index": "person",
      "_id": 1
    },
    {
      "_index": "person",
      "_id": 2
    } 
  ]
}

批量查询文档,使用_msearch API进行,将多个查询整合到一个请求中:

GET /person/_msearch
{"index":"person"}
{"query":{"match":{"blog":"ytao's blog"}}}
{"index":"person"}
{"query":{"match":{"remark":"coder"}}}