Elasticsearch增删改查语句

发布于:2025-06-12 ⋅ 阅读:(45) ⋅ 点赞:(0)

创建索引库:不带映射的

PUT /索引名称
{
  "settings": {
    "number_of_shards": 3,    // 主分片数
    "number_of_replicas": 1   // 每个主分片的副本数
  }
}

创建带映射的索引库:

PUT /products
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "id": {"type": "keyword"},
      "name": {
        "type": "text",
        "analyzer": "ik_max_word",
        "fields": {
          "keyword": {"type": "keyword"}
        }
      },
      "price": {"type": "double"},
      "stock": {"type": "integer"},
      "create_time": {"type": "date"}
    }
  }
}

查询索引库信息

查询单个索引库信息
GET /索引名称
​
查询多个索引库的信息
GET /索引1,索引2
​
查询所有索引
GET /_all
​
查询索引的映射信息
GET /索引名称/_mapping

修改索引库

修改索引1设置,修改部分
PUT /索引名称/_settings
{
  "number_of_replicas": 2
}
​
​
添加新字段映射
PUT /索引名称/_mapping
{
  "properties": {
    "new_field": {
      "type": "text"
    }
  }
}

删除索引库

DELETE /索引名称

文档CRUD的操作

添加文档

指定文档id参加
PUT /索引名称/_doc/文档ID
{
  "字段1": "值1",
  "字段2": "值2"
}
​
自动生成文档id添加
POST /索引名称/_doc
{
  "字段1": "值1",
  "字段2": "值2"
}

查询文档

根据id查询
GET /索引名称/_doc/文档ID
​
查询所有文档
GET /索引名称/_search
{
  "query": {
    "match_all": {}
  }
}

修改文档

全量替换(覆盖原有文档)
PUT /索引名称/_doc/文档ID
{
  "字段1": "新值1",
  "字段2": "新值2"
}
​
部分更新(只修改指定字段)
POST /索引名称/_update/文档ID
{
  "doc": {
    "字段1": "新值1"
  }
}

删除文档

DELETE /索引名称/_doc/文档ID

注意规范:

  1. 索引命名规范

    • 使用小写字母

    • 避免特殊字符

    • 可以包含数字和下划线

    • 推荐使用<业务名称>_<数据类型>_v<版本号>格式

  2. 操作确认

    • 创建/修改/删除操作后可以使用GET /索引名称确认结果

    • 文档操作后可以使用GET /索引名称/_doc/文档ID验证

  3. 错误处理

    • 404错误表示索引或文档不存在

    • 409错误表示版本冲突

    • 400错误表示请求格式有问题


网站公告

今日签到

点亮在社区的每一天
去签到