From dd0d19cf1ce65fb5579b014825dc2e7378f03d23 Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Tue, 23 Apr 2024 16:11:00 +0800 Subject: [PATCH] doc: update elasticsearch.md (#623) --- docs/elasticsearch.md | 897 ++++++++++++++++++++---------------------- 1 file changed, 419 insertions(+), 478 deletions(-) diff --git a/docs/elasticsearch.md b/docs/elasticsearch.md index 0071ef7..d6c8c81 100644 --- a/docs/elasticsearch.md +++ b/docs/elasticsearch.md @@ -3,50 +3,55 @@ Elasticsearch 备忘清单 这是 [Elasticsearch](https://www.elastic.co/guide/index.html) 的官方文档。 你可以在这里找到 elasticsearch 的所有文档。 -Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并作为看源软件发布。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。 - 入门 ----- - +--- ### 入门 + -#### 安装介绍 +Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。 -##### 下载 +#### 下载 -- 注意 - - version 需替换为指定版本 - - 官方包有的功能只能试用,完整功能需要付费,请仔细阅读官网文档。 +注意: `${VERSION}` 需替换为指定版本,官方包有的功能只能试用,完整功能需要付费,请仔细阅读官网文档。 -- windows +#### Windows - 下载地址: - - [https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-\${VERSION}-windows-x86_64.zip](https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-windows-x86_64.zip) +``` +https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-windows-x86_64.zip +``` + -- linux +#### linux - ```shell - wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-linux-x86_64.tar.gz - wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-linux-x86_64.tar.gz.sha512 - shasum -a 512 -c elasticsearch-${VERSION}-linux-x86_64.tar.gz.sha512 - tar -xzf elasticsearch-${VERSION}-linux-x86_64.tar.gz - cd elasticsearch-${VERSION}/ - ``` +```shell +$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-linux-x86_64.tar.gz -- macos - - ```shell - curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-darwin-x86_64.tar.gz - curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c - - tar -xzf elasticsearch-${VERSION}-darwin-x86_64.tar.gz - cd elasticsearch-${VERSION}/ - ``` +$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-linux-x86_64.tar.gz.sha512 -#### 启动 +$ shasum -a 512 -c elasticsearch-${VERSION}-linux-x86_64.tar.gz.sha512 + +$ tar -xzf elasticsearch-${VERSION}-linux-x86_64.tar.gz + +$ cd elasticsearch-${VERSION}/ +``` + + +#### macos + +```shell +$ curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-darwin-x86_64.tar.gz + +$ curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c - + +$ tar -xzf elasticsearch-${VERSION}-darwin-x86_64.tar.gz + +$ cd elasticsearch-${VERSION}/ +``` + + +### 启动 + - 启动 Elasticsearch @@ -59,13 +64,15 @@ Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布 ```shell export ELASTIC_PASSWORD="your_password" ``` + - 测试是否启动成功 - + ```shell curl --cacert $ES_HOME/config/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200 ``` + - 成功则返回样例如下: +- 成功则返回样例如下: ```json { @@ -86,10 +93,9 @@ Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布 "tagline" : "You Know, for Search" } ``` + - - -### elasticsearch 和 RDMS 的对比 +### Elasticsearch 和 RDMS 的对比 | RDMS | elasticsearch | | ----------------------- | ----------------- | @@ -103,563 +109,498 @@ Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布 | SELECT * FROM tablename | GET http://... | | UPDATE table SET | PUT http://... | | DELETE | DELETE http://... | + 操作 ----- +--- -说明: +### 基础语法规则 - 1. 以 user_info 为索引名称,类比数据库, - 2. 字段有 id,username,password,nickname,age,info,remark 为例进行演示。 +```shell +$ curl -X '://:/?' -d '' +``` + -# DSL语法 +- `VERB HTTP` 方法:GET, POST, PUT, HEAD, DELETE +- `PROTOCOL`:http 或者 https 协议(只有在 Elasticsearch 前面有 https 代理的时候可用) +- `HOST`:Elasticsearch 集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫 localhost +- `PORT`:Elasticsearch HTTP 服务所在的端口,默认为 9200 +- `PATH API 路径`(例如_count 将返回集群中文档的数量),PATH:可以包含多个组件,例如_cluster/stats 或者_nodes/stats/jvm +- `QUERY_STRING`:一些可选的查询请求参数,例如?pretty 参数将使请求返回更加美观易读的 JSON 数据 +- `BODY`:一个 JSON 格式的请求主体(如果请求需要的话) -## 基础语法规则 +### 创建索引 + -`curl -X '://:/?' -d ''` +#### 统一请求 api 前缀 - -- VERB HTTP 方法:GET, POST, PUT, HEAD, DELETE +``` +http://localhost:9200/ +``` -- PROTOCOL:http 或者 https 协议(只有在 Elasticsearch 前面有 https 代理的时候可用) +#### DSL语法 -- HOST:Elasticsearch 集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫 localhost - -- PORT:Elasticsearch HTTP 服务所在的端口,默认为 9200 - -- PATH API 路径(例如_count 将返回集群中文档的数量),PATH:可以包含多个组件,例如_cluster/stats 或者_nodes/stats/jvm - -- QUERY_STRING:一些可选的查询请求参数,例如?pretty 参数将使请求返回更加美观易读的 JSON 数据 - -- BODY:一个 JSON 格式的请求主体(如果请求需要的话) - - - -# 索引的操作 - -## 创建索引 - -- 统一请求 api 前缀 - - http://localhost:9200/ - -- DSL语法 - - ```shell - PUT /user_info - { - "settings": { - "number_of_replicas": 1, - "number_of_shards": 1 - }, - "mappings": { - "properties": { - "id": { - "type": "long", - "index": true - }, - "username": { - "type": "keyword", - "index": true - }, - "nickname": { - "type": "keyword", - "index": true - }, - "password": { - "type": "keyword", - "index": false - }, - "age": { - "type": "integer", - "index": true - }, - "info": { - "type": "text", - "index": true - }, - "remark": { - "type": "text", - "index": true - } - } - } +```json +PUT /user_info +{ + "settings": { "number_of_replicas": 1, "number_of_shards": 1 }, + "mappings": { + "properties": { + "id": { "type": "long", "index": true }, + "username": { "type": "keyword", "index": true }, + "nickname": { "type": "keyword", "index": true }, + "password": { "type": "keyword", "index": false }, + "age": { "type": "integer", "index": true }, + "info": { "type": "text", "index": true }, + "remark": { "type": "text", "index": true } } - ``` + } +} +``` -- curl +#### curl - ```shell - curl -XPUT "http://localhost:9200/user_info" -H 'Content-Type: application/json' -d'{ "settings": { "number_of_replicas": 1, "number_of_shards": 1 }, "mappings": { "properties": { "id": { "type": "long", "index": true }, "username": { "type": "keyword", "index": true }, "nickname": { "type": "keyword", "index": true }, "password": { "type": "keyword", "index": false }, "age": { "type": "integer", "index": true }, "info": { "type": "text", "index": true }, "remark": { "type": "text", "index": true } } } }' - ``` +```shell +curl -XPUT "http://localhost:9200/user_info" -H 'Content-Type: application/json' -d'{ "settings": { "number_of_replicas": 1, "number_of_shards": 1 }, "mappings": { "properties": { "id": { "type": "long", "index": true }, "username": { "type": "keyword", "index": true }, "nickname": { "type": "keyword", "index": true }, "password": { "type": "keyword", "index": false }, "age": { "type": "integer", "index": true }, "info": { "type": "text", "index": true }, "remark": { "type": "text", "index": true } } } }' +``` + -- 参数说明: +#### 参数说明 - settings:索引信息设置 +- `settings`: 设置索引的信息 +- `number_of_shards`: 每个索引的主分片数,一旦索引创建后,无法修改此配置 +- `number_of_replicas`: 每个主分片的副本数,此配置可随时修改 +- `mappings`: 索引映射定义 +- `properties`: 字段定义。使用 JSON 配置,键为字段名称(自定义),值为嵌套 JSON,其中 `type` 指定字段的类型 - number_of_shards:每个索引的主分片数,这个配置在索引创建后不能修改 +其他参数很多,请参考官网资料 - number_of_replicas:每个主分片的副本数,这个配置可以随时修改。 +### 删除索引 - mappings:索引映射定义 +#### DSL语法 - properties:字段定义 properties里是json配置,key为字段名称(自定义名称),value是个嵌套json,type是指定字段的类型。 +```http +DELETE /user_info +``` - -- 其他参数很多,请参考官网资料 +#### curl -## 删除索引 +```shell +curl -XDELETE "http://localhost:9200/user_info" +``` + -- DSL语法 +### 判断索引是否存在 - ```http - DELETE /user_info - ``` +#### DSL语法 -- curl - - ```shell - curl -XDELETE "http://localhost:9200/user_info" - ``` +```http +# 查看索引是否存在 +HEAD /user_info +``` +#### curl -## 判断索引是否存在 +```shell +# 查看索引是否存在 +curl -XHEAD "http://localhost:9200/user_info" +``` + -- DSL语法 - - ```http - # 查看索引是否存在 - HEAD /user_info - ``` +### 开启/关闭索引 -- curl - - ```shell - # 查看索引是否存在 - curl -XHEAD "http://localhost:9200/user_info" - ``` +#### 开启DSL语法 -## 开启/关闭索引 +```shell +POST /user_info/_open +``` -- 开启DSL语法 - - ```http - # 开启索引 - POST /user_info/_open - ``` +`curl` -- curl - - ```shell - # 开启索引 - curl -XPOST "http://localhost:9200/user_info/_open" - ``` +```shell +curl -XPOST "http://localhost:9200/user_info/_open" +``` + -- 关闭DSL语法 - - ```http - # 关闭索引 - POST /user_info/_close - ``` +#### 关闭 DSL 语法 -- curl - - ```shell - # 关闭索引 - curl -XPOST "http://localhost:9200/user_info/_close" - ``` +```shell +POST /user_info/_close +``` +`curl` +```shell +curl -XPOST "http://localhost:9200/user_info/_close" +``` + -## 索引的别名 +### 索引的别名 + -- 添加别名DSL语法 +- 添加别名 DSL 语法 - ```http - # 添加别名 - POST /user_info/_alias/user1 - ``` - -- 添加别名curl - - ```shell - # 添加别名 - curl -XPOST "http://localhost:9200/user_info/_alias/user1" - ``` +```shell +POST /user_info/_alias/user1 +``` +```shell +curl -XPOST "http://localhost:9200/user_info/_alias/user1" +``` - 删除别名DSL语法 - - ```http - # 删除别名 - DELETE /user_info/_alias/user1 - ``` -- 删除别名curl +```shell +DELETE /user_info/_alias/user1 +``` - ```shell - # 删除别名 - curl -XDELETE "http://localhost:9200/user_info/_alias/user1" - ``` +```shell +curl -XDELETE "http://localhost:9200/user_info/_alias/user1" +``` - 查看别名DSL语法 - ```http - # 查看别名 - GET /_alias/user1 - ``` +```shell +GET /_alias/user1 +``` +```shell +curl -XGET "http://localhost:9200/_alias/useraa" +``` -- 查看别名curl - - ```shell - # 查看别名 - curl -XGET "http://localhost:9200/_alias/useraa" - ``` - -## mapping 操作 +Mapping 操作 +--- 类似修改数据库中列的操作 ### 查看 mapping -- DSL语法 - - ```http - # 查看mapping - GET /user_info/_mapping - ``` +#### DSL语法 -- curl - - ```shell - # 查看mapping - curl -XGET "http://localhost:9200/user_info/_mapping" - ``` +```shell +GET /user_info/_mapping +``` -### 新增 mapping +--- -- 注意 - - **需要注意的是字段映射只能增加,不能更改删除** +```shell +curl -XGET "http://localhost:9200/user_info/_mapping" +``` + -- DSL语法 - - ```http - # 新增mapping - PUT /user_info/_mapping - { - "properties":{ - "sex":{ - "type":"keyword" - } - } +### 新增 mapping + + +#### DSL语法 + +```shell +PUT /user_info/_mapping +{ + "properties":{ + "sex":{ "type":"keyword" } } - ``` +} +``` -- curl - - ```shell - # 新增mapping - curl -XPUT "http://localhost:9200/user_info/_mapping" -H 'Content-Type: application/json' -d'{ "properties":{ "sex":{ "type":"keyword" } } }' - ``` +--- -# 文档的操作 +```shell +curl -XPUT "http://localhost:9200/user_info/_mapping" -H 'Content-Type: application/json' -d'{ "properties":{ "sex":{ "type":"keyword" } } }' +``` + -## 添加文档 -- DSL语法 +`注意`: 需要注意的是字段映射只能增加,不能更改删除 - ```http - # 新增一条数据 - POST /user_info/_doc/1 - { - "id":1, - "username":"username", - "password":"123456", - "nickname":"nickname", - "age":18, - "info":"一些个人相关的介绍", - "remark":"备注信息", - "sex":"男" +文档的操作 +--- + +### 添加文档 + + +#### 新增一条数据 - DSL语法 + +```shell +POST /user_info/_doc/1 +{ + "id":1, + "username":"username", + "password":"123456", + "nickname":"nickname", + "age":18, + "info":"一些个人相关的介绍", + "remark":"备注信息", + "sex":"男" +} +``` + +--- + +```shell +curl -XPOST "http://localhost:9200/user_info/_doc/1" -H 'Content-Type: application/json' -d'{ "id":1, "username":"username", "password":"123456", "nickname":"nickname", "age":18, "info":"一些个人相关的介绍", "remark":"备注信息", "sex":"男" }' +``` + + +### 查询指定索引的所有文档 + + +类似数据库中的 `select * from user_info;` + +#### DSL语法 + +```json +GET /user_info/_search +{ + "query": { + "match_all": {} } - ``` +} +``` -- curl - - ```shell - # 新增一条数据 - curl -XPOST "http://localhost:9200/user_info/_doc/1" -H 'Content-Type: application/json' -d'{ "id":1, "username":"username", "password":"123456", "nickname":"nickname", "age":18, "info":"一些个人相关的介绍", "remark":"备注信息", "sex":"男" }' - ``` +--- +```shell +curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "match_all": {} } }' +``` + -## 查询指定索引的所有文档 +### 通过 id 查询文档 -- 类似数据库中的 `select * from user_info;` +类似数据库中的 `select * from user_info where id = 1;` -- DSL语法 - - ```http - GET /user_info/_search - { - "query": { - "match_all": {} - } - } - ``` +#### DSL语法 -- curl - - ```shell - curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "match_all": {} } }' - ``` +```shell +GET /user_info/_doc/1 +``` -## 通过 id 查询文档 +--- -- 类似数据库中的 `select * from user_info where id = 1;` - -- DSL语法 - - ```http - # 通过id查询 - GET /user_info/_doc/1 - ``` - -- curl - - ```shell - # 通过id查询 - curl -XGET "http://localhost:9200/user_info/_doc/1" - ``` - - -## 通过条件查询文档 - -### 精确查找 - -- 类似数据库中的 `select * from user_info where username = 'username';` - -- DSL语法 - - ```http - # 通过条件查询 - GET /user_info/_search - { - "query": { - "bool": { - "must": [ - { "term": { "username": "username" } } - ] - } - } - } - ``` - -- curl - - ```shell - # 通过条件查询 - curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "bool": { "must": [ { "term": { "username": "username" } } ] } } }' - ``` +```shell +curl -XGET "http://localhost:9200/user_info/_doc/1" +``` + ### 模糊查找 -- 类似数据库中的模糊查询 `select * from user_info where info like '%人%';` +类似数据库中的模糊查询 `select * from user_info where info like '%人%';` -- DSL语法 +#### DSL语法 + +```json +GET /user_info/_search +{ + "query": { "match": { "info": "人" } } +} +``` + +### 通过条件查询文档 + + +类似数据库中的 `select * from user_info where username = 'username';` - ```http - # 模糊查找 - GET /user_info/_search - { - "query": { - "match": { - "info": "人" - } +#### 通过条件查询 - DSL语法 + +```json +GET /user_info/_search +{ + "query": { + "bool": { + "must": [ { "term": { "username": "username" } } ] } } - ``` +} +``` +--- +```shell +curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "bool": { "must": [ { "term": { "username": "username" } } ] } } }' +``` + ### 范围查找 -- 类似数据库中的范围查询 `select * from user_info where age between 18 and 30;` +类似数据库中的范围查询 `select * from user_info where age between 18 and 30;` -- DSL语法 +#### DSL语法 - ```http - GET /user_info/_search - { - "query": { - "range": { - "age": { - "gt": 18, - "lt": 30 - } +```json +GET /user_info/_search +{ + "query": { + "range": { + "age": { + "gt": 18, + "lt": 30 } } } - ``` +} +``` -- curl - - ```shell - curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "range": { "age": { "gt": 18, "lt": 30 } } } }' - ``` +--- + +```shell +curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "range": { "age": { "gt": 18, "lt": 30 } } } }' +``` + + +### and 查询 + + +类似数据库中的 and 查询 `select * from user_info where age > 18 and sex = '男';` + +#### DSL语法 + +```json +GET /user_info/_search +{ + "query": { + "bool": { + "must": [ + { "range": { "age": { "gt": 18 } } }, + { "term": { "sex": "男" } } + ] + } + } +} +``` + +--- + +```shell +curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "bool": { "must": [ { "range": { "age": { "gt": 17 } } }, { "term": { "sex": "男" } } ] } } }' +``` + ### limit 查找 -- 类似数据库中的 limit 查询 `select * from user_info limit 10;` - -- DSL语法 - - ```http - GET /user_info/_search - { - "size": 10, - "query": { - "match_all": {} - } - } - ``` +类似数据库中的 limit 查询 `select * from user_info limit 10;` -- curl - - ```shell - curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "size": 1, "query": { "match_all": {} } }' - ``` +#### DSL语法 + +```json +GET /user_info/_search +{ + "size": 10, + "query": { + "match_all": {} + } +} +``` + +--- + +```shell +curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "size": 1, "query": { "match_all": {} } }' +``` + ### limit offset 查找 -- 类似数据库中的 limit 查询 `select * from user_info limit 0,10;` +类似数据库中的 limit 查询 `select * from user_info limit 0,10;` -- DSL语法 +#### DSL语法 + +```http +GET /user_info/_search +{ + "size": 2, + "from": 1, + "query": { + "match_all": {} + } +} +``` + +--- + +```shell +curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "size": 2, "from": 1, "query": { "match_all": {} } }' +``` + + +#### 参数说明 - ```http - GET /user_info/_search - { - "size": 2, - "from": 1, - "query": { - "match_all": {} - } - } - ``` - -- curl - - ```shell - curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "size": 2, "from": 1, "query": { "match_all": {} } }' - ``` - -- 参数说明 - - - "size": 10表示我们想要返回的结果数量是10条。 - - "from": 20表示我们想要从结果集中的第21条记录开始返回(因为偏移是从0开始的)。 - - "query": `{"match_all": {}}` 是一个匹配所有文档的查询,因为我们没有特定的查询条件,只是想要分页结果。 - -### and 查询 - -- 类似数据库中的 and 查询 `select * from user_info where age > 18 and sex = '男';` - -- DSL语法 - - ```http - GET /user_info/_search - { - "query": { - "bool": { - "must": [ - { "range": { "age": { "gt": 18 } } }, - { "term": { "sex": "男" } } - ] - } - } - } - ``` - -- curl - - ```shell - curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "bool": { "must": [ { "range": { "age": { "gt": 17 } } }, { "term": { "sex": "男" } } ] } } }' - ``` +- `size`: 10 表示我们想要返回的结果数量是10条 +- `from`: 20 表示我们想要从结果集中的第21条记录开始返回(因为偏移是从0开始的) +- `query`: `{"match_all": {}}` 是一个匹配所有文档的查询,因为我们没有特定的查询条件,只是想要分页结果 ### or 查询 + -- 类似数据库中的 or 查询 `select * from user_info where age > 18 or sex = '男';` +类似数据库中的 or 查询 `select * from user_info where age > 18 or sex = '男';` -- DSL语法 - - ```http - GET /user_info/_search - { - "query": { - "bool": { - "should": [ - { - "range": { - "age": { - "gt": 18 - } - } - }, - { - "term": { - "sex": "男" - } +#### DSL语法 + +```json +GET /user_info/_search +{ + "query": { + "bool": { + "should": [ + { + "range": { + "age": { "gt": 18 } } - ] + }, + { + "term": { "sex": "男" } } + ] } } - ``` +} +``` -- curl - - ```shell - curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "bool": { "should": [ { "range": { "age": { "gt": 18 } } }, { "term": { "sex": "男" } } ] } } }' - ``` +--- +```shell +curl -XGET "http://localhost:9200/user_info/_search" -H 'Content-Type: application/json' -d'{ "query": { "bool": { "should": [ { "range": { "age": { "gt": 18 } } }, { "term": { "sex": "男" } } ] } } }' +``` + -## 删除文档 +删除文档 +--- ### 删除指定 id -- 类似数据库中的 delete 查询 `delete from user_info where id = 3;` +类似数据库中的 delete 查询 `delete from user_info where id = 3;` -- DSL语法 - - ```http - # 删除文档 - DELETE /user_info/_doc/3 - ``` +#### DSL语法 -- curl - - ```shell - # 删除文档 - curl -XDELETE "http://localhost:9200/user_info/_doc/3" - ``` +```shell +# 删除文档 +DELETE /user_info/_doc/3 +``` + +--- + +```shell +# 删除文档 +curl -XDELETE "http://localhost:9200/user_info/_doc/3" +``` + ### 删除指定条件 + -- 类似数据库中的 delete 查询 `delete from user_info where age > 18;` +类似数据库中的 delete 查询 `delete from user_info where age > 18;` -- DSL语法 - - ```http - POST /user_info/_delete_by_query - { - "query": { - "range": { - "age": { - "gt": 18 - } - } - } +#### DSL语法 + +```json +POST /user_info/_delete_by_query +{ + "query": { + "range": { "age": { "gt": 18 } } } - ``` -- curl - - ```shell - curl -XPOST "http://localhost:9200/user_info/_delete_by_query" -H 'Content-Type: application/json' -d'{"query":{"range":{"age":{"gt":18}}}}' - ``` +} +``` + +--- + +```shell +curl -XPOST "http://localhost:9200/user_info/_delete_by_query" -H 'Content-Type: application/json' -d'{"query":{"range":{"age":{"gt":18}}}}' +``` +