Elasticsearch7 index语法

本文介绍了Elasticsearch7中使用GET、PUT、DELETE API进行文档查询、插入与更新、删除的基本语法和实例,帮助读者掌握如何与Elasticsearch7索引交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elasticsearch7 index语法

查询:

Get API | Elasticsearch Guide [7.13] | Elastic

GET index/_doc/_id
举例:
GET my-index-000001/_doc/0
插入和更新:

Update API | Elasticsearch Guide [7.13] | Elastic

_id存在就是更新,否则执行插入操作

PUT /index/_doc/_id
{
 "content":"it is cool !"
}
举例:
PUT /event2021-07-09/_doc/SrhAUXoBGoUgLndtHN4d
{
  "@timestamp": "2021-08-28T15:13:15.131+0800",
  "name": "coderTree",
  "hobby":"pingpang-ball"
}
删除:

Delete API | Elasticsearch Guide [7.13] | Elastic

DELETE /index/_doc/1_id
举例:
DELETE /my-index-000001/_doc/1
### Elasticsearch SQL 查询语法 示例教程 Elasticsearch 提供了对 SQL 查询的支持,允许用户通过熟悉的 SQL 语法查询数据[^3]。以下是关于 Elasticsearch SQL 查询语法的详细说明和示例: #### 1. 基本查询 Elasticsearch SQL 支持使用标准的 SQL SELECT 语句来查询数据。以下是一个简单的查询示例,展示如何从索引中检索所有字段的数据: ```sql SELECT * FROM my_index; ``` 此查询将返回 `my_index` 索引中的所有文档[^3]。 #### 2. 指定字段查询 如果只需要查询某些特定字段,可以在 SELECT 子句中指定字段名称。例如: ```sql SELECT name, age FROM my_index; ``` 上述查询仅返回 `name` 和 `age` 字段的值。 #### 3. 条件过滤 可以使用 WHERE 子句添加条件过滤。例如,查询年龄大于 25 的文档: ```sql SELECT * FROM my_index WHERE age > 25; ``` 此外,还可以结合多个条件进行过滤。例如,查询年龄大于 25 且性别为男性的文档: ```sql SELECT * FROM my_index WHERE age > 25 AND sex = '1'; ``` #### 4. 排序 可以使用 ORDER BY 子句对结果进行排序。例如,按照年龄降序排列: ```sql SELECT * FROM my_index ORDER BY age DESC; ``` 如果需要指定缺失值的处理方式,可以使用 `MISSING` 关键字。例如,当 `age` 字段缺失时将其排在最前面: ```sql SELECT * FROM my_index ORDER BY age DESC MISSING '_first'; ``` #### 5. 分页 Elasticsearch SQL 支持分页查询,可以通过 LIMIT 和 OFFSET 子句实现。例如,查询前 10 条记录: ```sql SELECT * FROM my_index LIMIT 10; ``` 或者跳过前 10 条记录并查询接下来的 10 条记录: ```sql SELECT * FROM my_index LIMIT 10 OFFSET 10; ``` #### 6. 聚合查询 Elasticsearch SQL 还支持聚合操作。例如,统计每个城市的文档数量: ```sql SELECT city, COUNT(*) AS count FROM my_index GROUP BY city; ``` 此查询将返回每个城市对应的文档计数。 #### 7. 时间字段查询 对于时间字段,可以使用日期格式化功能。例如,查询发布日期在 2023 年之后的文档: ```sql SELECT * FROM my_index WHERE release_date > '2023-01-01'; ``` #### 8. 处理空值 可以使用 IS NULL 或 IS NOT NULL 判断字段是否为空。例如,查询 `city` 字段为空的文档: ```sql SELECT * FROM my_index WHERE city IS NULL; ``` #### 9. 自定义字段格式 可以使用 FORMAT 子句自定义字段的输出格式。例如,将日期字段格式化为特定格式: ```sql SELECT release_date FORMAT 'yyyy-MM-dd' FROM my_index; ``` ### 注意事项 - Elasticsearch SQL 查询需要启用 SQL 功能,并确保相关插件已安装[^5]。 - 查询性能可能受索引设计和数据量影响,建议优化查询语句以提高效率[^3]。 ```python # 示例:通过 Python 使用 Elasticsearch SQL API from elasticsearch import Elasticsearch es = Elasticsearch() response = es.sql.query(body={ "query": "SELECT * FROM my_index WHERE age > 25" }) print(response) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值