本文为博主原创,未经允许不得转载:

ES 的 Restful风格:

  Restful是一种面向资源的架构风格,可以简单理解为:使用URL定位资源,用HTTP动词(GET,POST,DELETE,PUT)描述操作。 基于Restful API ES和所有客户端的交互都是使用JSON格式的数据。

    GET查询

    PUT添加

    POST修改

    DELE删除

1.索引常用操作:

  1.1 创建索引:

  格式: PUT /索引名称

PUT /es_db

  1.2 创建索引映射

PUT /my-index
{
"mappings": {
"properties": {
"title": {
"type": "text"
},
"date": {
"type": "date"
},
"views": {
"type": "integer"
}
}
}
}

  1.3 设置索引参数

PUT /my-index
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
}
}

  上述示例将 "my-index" 设置为包含 5 个主分片和 1 个副本分片。

  1.4 查询索引

  格式: GET /索引名称

GET /es_db

  1.5  删除索引

  格式: DELETE /索引名称
DELETE /es_db

2.文档操作:

  2.1 添加

  格式: PUT /索引名称/类型/id

PUT /es_db/_doc/1
{
"name": "张三",
"sex": 1,
"age": 25,
"address": "广州天河公园",
"remark": "java developer"
}

  2.2 修改

  格式: PUT /索引名称/类型/id

PUT /es_db/_doc/1
{
"name": "李四",
"sex": 1,
"age": 25,
"address": "玄武湖公园",
"remark": "java developer"
}

  2.3 查询

  格式: GET /索引名称/类型/id

GET /es_db/_doc/1

  2.4 删除

  格式: DELETE /索引名称/类型/id

DELETE /es_db/_doc/1

3.查询操作

  3.1 查询当前索引类型的所有文档:_search

    格式: GET /索引名称/类型/_search
GET /es_db/_doc/_search

  3.2 条件查询: _search?q=filed:value

  格式: GET /索引名称/类型/_search?q=filed:value
# 查询age 为28 的文档
GET /es_db/_doc/_search?q=age:28  

  3.3 范围查询:  _search?q=filed[start-value TO end-value]

  格式: GET /索引名称/类型/_search?q=***[25 TO 26]  。。。。

  TO 必须为大写
# 查询age在25至26岁之间的
GET /es_db/_doc/_search?q=age[25 TO 26]

  3.4 根据多个ID进行批量查询 _mget

  格式: GET /索引名称/类型/_mget

# 查询id 为1和2的文档
GET /es_db/_doc/_mget
{
"ids":["1","2"]
}

  3.5 小于等于查询:  :<=

  格式: GET /索引名称/类型/_search?q=filed:<=value

# 查询age 小于等于28 的文档
GET /es_db/_doc/_search?q=age:<=28

  3.6 大于等于查询:  :>=

  格式: GET /索引名称/类型/_search?q=filed:>=value

# 查询age 小于等于28 的文档
GET /es_db/_doc/_search?q=age:>=28

  3.7 分页查询: from=pageNo&size=pageSize

  格式: GET /索引名称/类型/_search?q=age[25 TO 26]&from=0&size=1

# 查询age 在25到26之间的文档数据分页,从0开始,pageSize 为1
GET /es_db/_doc/_search?q=age[25 TO 26]&from=0&size=1

  3.8 对查询结果只输出某些字段 _source=字段,字段

  格式: GET /索引名称/类型/_search?_source=字段,字段

# 查询显示 name 与age 文档数据
GET /es_db/_doc/_search?_source=name,age

  3.9 对查询结果排序 sort=字段:desc/asc

  格式: GET /索引名称/类型/_search?sort=字段 desc
# 查询es_db 中的数据并进行age 降序排序
GET /es_db/_doc/_search?sort=age:desc

4.注意事项

  在Elasticsearch中,如果使用DSL查询语句来查询一个不存在的索引或表,通常不会导致错误报告。

  当使用DSL查询语句时,Elasticsearch会尝试执行查询并返回相应的结果。如果在查询中引用了一个不存在的索引或表,Elasticsearch会返回一个空的响应,其中不会包含任何匹配的结果。

这意味着即使表不存在,仍然可以发出DSL查询,并且不会引发错误。因此,在执行任何ES查询之前,最好先确认所查询的索引或表是否存在,以避免不必要的请求和处理。

Elasticsearch 索引与文档的常用操作总结一的更多相关文章

  1. 007-elasticsearch5.4.3【一】概述、Elasticsearch 访问方式、Elasticsearch 面向文档、常用概念

    一.概述 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上. Elasticsearch 也是使用 Java 编写的,它的内部使用 L ...

  2. elasticsearch查询篇索引映射文档数据准备

    elasticsearch查询篇索引映射文档数据准备 我们后面要讲elasticsearch查询,先来准备下索引,映射以及文档: 我们先用Head插件建立索引film,然后建立映射 POST http ...

  3. Elastic Stack 笔记(四)Elasticsearch5.6 索引及文档管理

    博客地址:http://www.moonxy.com 一.前言 在 Elasticsearch 中,对文档进行索引等操作时,既可以通过 RESTful 接口进行操作,也可以通过 Java 也可以通过 ...

  4. Elasticsearch 7.x文档基本操作(CRUD)

    官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html 1.添加文档 1.1.指定文档ID PUT ...

  5. es之对文档进行更新操作

    5.7.1:更新整个文档 ES中并不存在所谓的更新操作,而是用新文档替换旧文档: 在内部,Elasticsearch已经标记旧文档为删除并添加了一个完整的新文档并建立索引.旧版本文档不会立即消失 ,但 ...

  6. elasticsearch 基础 —— 分布式文档存储原理

    路由一个文档到一个分片中 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片  ...

  7. ElasticSearch 集群基本概念及常用操作汇总(建议收藏)

    内容来源于本人的印象笔记,简单汇总后发布到博客上,供大家需要时参考使用. 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录: Elas ...

  8. shift+alt 可对notepadplusplus 打开的文档进行列操作

    shift+alt 可对notepadplusplus 打开的文档进行列操作

  9. flask - fastapi (python 异步API 框架 可以自动生成swagger 文档) 常用示例 以及整合euraka nacos

    flask - fastapi    (python 异步API 框架  可以自动生成swagger 文档)  常用示例: 之前使用 flask 需要手动写文档, 这个可以自动生成, fastapi ...

  10. Elasticsearch技术解析与实战(二)文档的CRUD操作

    启动Elasticsearch和kibana 访问Elasticsearch:http://localhost:9200/?pretty 访问kibana:http://localhost:5601 ...

随机推荐

  1. MySQL运维9-Mycat分库分表之枚举分片

    一.枚举分片 通过在配置文件中配置可能的枚举值,指定数据分布到不同数据节点上,这种方式就是枚举分片规则,本规则适用于按照省份,性别,状态拆分数据等业务 二.枚举分片案例 枚举分片需求:现有 tb_en ...

  2. C++ Qt开发:SqlTableModel映射组件应用

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlTabl ...

  3. Python——第五章:logging模块

    logging 模块是 Python 中用于记录日志的官方模块.通过 logging 模块,你可以配置和管理日志的生成.处理和存储. logging.basicConfig()用法 filename: ...

  4. 浅谈树形DP

    树形DP是动态规划中最难也最常考的内容.具有DP和图论相结合的特点. 但从本质上来说,树形DP只不过是一种线性DP,只是将它与搜索结合起来了而已. 树形DP的基本步骤 读图 树形DP的题目中,通常会给 ...

  5. Docker 部署工具

    Docker 容器的创建比较简单,容器解决了应用程序对于运行环境的依赖问题,但是在当前所处的微服务盛行的情况下,手动管理容器是一件比较重复其及其枯燥的工作,这项工作理论上可以通过计算机来完成,因此涌现 ...

  6. Python借助企业微信群机器人发送消息、图片和文件

    企业微信功能日益强大,腾讯官方也提供了丰富的API供开发者实现企业微信的很多自动化场景.比如,如何给某个企业微信群发送消息.图片或者文件,甚至@指定群用户?别急,看小爬君轻松教会大家. Step1:在 ...

  7. Flume快速入门

    Flume快速入门 一.简介 高可用.高可靠,分布式的海量日志采集.聚合和传输系统,基于流式架构,灵活简单. event:事件 source:数据源 sink:目标 channel:数据管道 通过获取 ...

  8. Go语言逆向技术:恢复函数名称算法

    摘要:在对程序做安全审计.漏洞检测时,通常都需要对程序做逆向分析,本文在没有符号表的情况下,提出了一种恢复函数名称的算法,方便对go语言二进制文件进行逆向分析,提升分析效率. 本文分享自华为云社区&l ...

  9. Centos7 怎么永久关闭防火墙

    1.连接到centos主机,然后输入命令"systemctl status firewalld.service"并按下回车键. 2.然后在下方可以查看得到 " activ ...

  10. 提速 10 倍!深度解读字节跳动新型云原生 Spark History Server

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前不久,在 6月29日 Databricks 举办的 Data + AI Summit 上,火山引擎向大家首次介绍 ...