_doc端点
用于对单个****文档的crud操作(如创建、获取、更新、删除单个文档),常见用法如下
向指定索引添加新文档:
POST /索引名/_doc
ES会自动生成唯一文档ID,例:POST /books/_doc → 向 books索引添加新文档。
根据文档ID创建/更新文档:
PUT /索引名/_doc/文档ID
若文档ID不存在,则创建;若已存在,则全量替换文档内容。例:PUT /books/_doc/100 → 创建或替换ID为100的文档。
根据文档ID获取单个文档:
GET /索引名/_doc/文档ID
例:GET /books/_doc/100 → 获取ID为100的文档详情。
根据文档ID删除文档:
DELETE /索引名/_doc/文档ID
例:DELETE /books/_doc/100 → 删除ID为100的文档。
_search端点
用于搜索操作,可以对一个或多个索引执行查询,并返回匹配的文档,常见用法如下
基础搜索:
GET /索引名/_search
例:GET /books/_search → 搜索 books 索引中的所有文档(默认返回 10 条)。
带查询条件的搜索:
在请求体中通过 JSON 定义查询条件,如下所示,表示在 books 索引中搜索 title 包含 "elasticsearch" 的文档。
GET /books/_search
{"query": {"match": { "title": "elasticsearch" }}
}
多索引搜索:
同时搜索多个索引,如下所示
GET /索引1,索引2/_search
所有索引搜索:
搜索所有索引,如下所示,不推荐使用,性能较差。
GET /_all/_search 或 GET /*/_search
_analyze端点
用于测试和调试文本分析过程。通过这个端点,你可以查看指定文本经过特定分析器(analyzer)处理后的分词结果;测试自定义分析器的效果;验证分词器(tokenizer)、过滤器(filter)等组件的组合效果。
基本格式
GET _analyze
{"analyzer": "指定分析器名称","text": "需要分析的文本内容"
}
_bulk端点
用于高效执行批量索引、更新或删除操作。_bulk请求格式基本结构如下:
{"action": {"metadata"}}
{"data"}
{"action": {"metadata"}}
{"data"}
...
其中:
- action 可以是 index、create、update 或 delete。
- metadata 包含索引名称、文档 ID 等信息
- data 是文档的内容(delete 操作不需要这一行)
常见写法
不指定元数据:这里既不指定 _index,也不指定 _id,此时会由Es自动生成文档ID,同时要求必须在请求的URL中指定默认索引,否则会报错。
POST /music/_bulk
{"index": {}}
{"name": "张三", "age":"18"}
指定元数据:指定文档ID和索引。
注意:_index和_id是可选参数。
_index 代表索引值,如果元数据中不指定 _index,则用请求的URL中指定的默认索引;如果指定了_index,即使请求URL中指定了默认索引,也还是以 _index 中指定的索引为准。
_id 代表文档ID,如果元数据中不指定 _id,则使用Es自动生成文档ID;如果指定 _id,则会判断 _id 的值在文档中是否存在,如果存在则更新,如果不存在则创建新文档。
POST /_bulk
{"index": {"_index": "products", "_id": "1"}}
{"name": "张三", "age":"18"}POST /music/_bulk
{"index": {"_index": "products", "_id": "1"}} //此时index还是products,products会覆盖music
{"name": "张三", "age":"18"}
多种数据类型操作
POST /_bulk
{"index": {"_index": "products", "_id": "1"}}
{"name": "iPhone", "price": 999, "category": "electronics"}
{"create": {"_index": "products", "_id": "2"}}
{"name": "MacBook", "price": 1999, "category": "electronics"}
{"update": {"_index": "products", "_id": "1"}}
{"doc": {"price": 899}}
{"delete": {"_index": "products", "_id": "2"}}
index:如果文档不存在则创建,存在则更新(全量替换)。
create:仅在文档不存在时创建,存在则失败。
update:部分更新文档,需要使用 doc 字段指定要更新的字段。
delete:删除指定文档。