es文档操作

目录

一.概念

二.新增文档

[2.1指定 _id 新增文档](#2.1指定 _id 新增文档)

[2.2由 ES 自动生成 _id](#2.2由 ES 自动生成 _id)

2.3只允许新增,不允许覆盖

三.删除文档

[3.1根据 _id 删除文档](#3.1根据 _id 删除文档)

3.2按条件批量删除

四.修改文档

4.1全量更新

4.2局部更新

4.3脚本更新

五.查询文档

[5.1根据 _id 查询(最快)](#5.1根据 _id 查询(最快))

5.2查询全部文档

5.3条件查询


一.概念

ES 的 CRUD 操作,本质上就是对索引中的 JSON 文档进行操作。

|--------------|-----------|
| 概念 | 类比关系型数据库 |
| Index(索引) | Database |
| Document(文档) | Row(一行数据) |
| Field(字段) | Column |
| _id | 主键 |

二.新增文档

2.1指定 _id 新增文档

PUT /user_index/_doc/1

{

"name": "张三",

"age": 25,

"city": "北京"

}

  • user_index:索引名

  • _doc:固定文档类型(7.x 之后已固定)

  • 1:文档 ID(主键)

  • 如果 _id=1 不存在 → 新增

  • 如果 _id=1 已存在 → 覆盖(不是报错)

2.2由 ES 自动生成 _id

POST /user_index/_doc

{

"name": "李四",

"age": 30,

"city": "上海"

}

适用场景:

  • 日志

  • 行为数据

  • 不关心主键

2.3只允许新增,不允许覆盖

PUT /user_index/_create/1

{

"name": "王五",

"age": 28

}

特点:

  • 如果 _id 已存在 → 直接报错 409

  • 适合对数据一致性要求高的业务

三.删除文档

3.1根据 _id 删除文档

DELETE /user_index/_doc/1

3.2按条件批量删除

POST /user_index/_delete_by_query

{

"query": {

"term": {

"city": "北京"

}

}

}

提醒:

  • 不可回滚

  • 生产环境前一定先用 _search 验证条件

四.修改文档

4.1全量更新

PUT /user_index/_doc/1

{

"name": "张三",

"age": 26

}

4.2局部更新

POST /user_index/_update/1

{

"doc": {

"age": 27

}

}

特点:

  • 只更新指定字段

  • 其他字段不受影响

  • 内部仍是"读 → 改 → 写"

4.3脚本更新

POST /user_index/_update/1

{

"script": {

"source": "ctx._source.age += 1"

}

}

五.查询文档

5.1根据 _id 查询(最快)

GET /user_index/_doc/1

特点:

  • 不走倒排索引

  • 直接查主键

  • 性能极高

5.2查询全部文档

GET /user_index/_search

5.3条件查询

精确匹配

GET /user_index/_search

{

"query": {

"term": {

"city": "北京"

}

}

}

全文搜索

GET /user_index/_search

{

"query": {

"match": {

"name": "张三"

}

}

}

5.4多条件组合(bool 查询)

GET /user_index/_search

{

"query": {

"bool": {

"must": [

{ "match": { "city": "北京" } }

],

"filter": [

{ "range": { "age": { "gte": 20 } } }

]

}

}

}

相关推荐
知守观18 小时前
多模块架构演进:横向分层 vs 纵向领域,13 个真实项目的切分对照
java·后端·微服务
Elastic 中国社区官方博客21 小时前
基于 Jina OCR v1 与 Elasticsearch 的 PDF 智能混合检索与 RAG 系统实战指南
大数据·数据库·elasticsearch·搜索引擎·ocr·jina
GlobalInfo1 天前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
Eloudy1 天前
Qwen2.5-14B-Instruct-AWQ 模型文件结构分析
大数据·elasticsearch·搜索引擎
YIN_尹2 天前
【git原理与使用】git初识与安装
大数据·git·elasticsearch
每天一道题2 天前
微服务为什么会变慢?从 QPS、P99 到 Trace 与性能瓶颈
微服务·云原生·架构
利威尔xu2 天前
Go IM 源码实战(11):token 只是个 HASH,多端互踢的顺序错了就踢错人
后端·微服务·面试·架构·golang
每天一道题2 天前
微服务为什么会发生级联故障?从 Timeout、Retry 到熔断、限流与 Backpressure
微服务·云原生·架构
Elastic 中国社区官方博客2 天前
Elastic 在《Forrester Wave™:2026 年第四季度智能运维平台》报告中被评为强劲表现者
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索
Elasticsearch2 天前
Elastic Cloud 无服务器服务审计日志:将审计记录发送到可观测性或安全解决方案
elasticsearch