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

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. k8s安装网络插件calico出现error validating "calico.yaml": error validating data: invalid object to validate; if you choose to ignore these errors, turn validation off with --validate=false

    解决办法:使用下面版本的calico curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O

  2. Elasticsearch对接MinIO存储Snapshot快照

    服务器配置 MinIO集群节点(4节点) IP 节点1 miniotest1.ip.tp-link.com 172.29.145.80 生产环境需要增加一个Nginx负载均衡前端用于ELK对接,此处直 ...

  3. Angular 集成 Material UI 后组件显示不正常 踩坑日记

    在使用了 npm 下载 Material 后, 项目不能正常使用 Material 组件, 随后又使用官方命令使用 Material 组件, 仍然不能正常使用 Material 组件. npm 命令 ...

  4. 自定义Graph Component:1.1-JiebaTokenizer具体实现

      JiebaTokenizer类继承自Tokenizer类,而Tokenizer类又继承自GraphComponent类,GraphComponent类继承自ABC类(抽象基类).本文使用<使 ...

  5. 从零开始学习python | 实例讲解如何制作Python模式程序

    摘要:在本文中,我们将学习python中的各种模式程序. Python编程语言很容易学习.易于语法实现的各种库使其脱颖而出,这是它成为本世纪最流行的编程语言的众多原因之一.虽然学习很容易,但访问员通常 ...

  6. 教你用Java7的Fork/Join框架开发高并发程序

    摘要:Fork/Join框架位于J.U.C(java.util.concurrent)中,是Java7中提供的用于执行并行任务的框架,其可以将大任务分割成若干个小任务,最终汇总每个小任务的结果后得到最 ...

  7. [IM002]Navicat ODBC驱动器管理器 未发现数据源名称并且未指定默认驱动程序

    数据库 SQL SERVER 2008,连接时报:[IM002]Navicat ODBC驱动器管理器 未发现数据源名称并且未指定默认驱动程序 到安装目录下找到 sqlncli_x64.mis 双击安装 ...

  8. 使用port-forward本地访问k8s集群内redis

    前言 通过kubectl port-forward端口转发,在本地机器上访问k8s集群内的服务/数据库,对开发.调试.定位bug都很有用. 每次都要查,这里记录一下. 步骤 当然首先要确保本地机器上安 ...

  9. Mongodb--用户/权限

    mongodb分为管理员用户和普通用户,并且还有个验证库,建立用户时use到的库(验证库),信息就存储在admin数据库下. 在使用用户时,要加上验证库才能登录,对于管理员用户,必须在admin下创建 ...

  10. #2069:Coin Change(完全背包)

    Problem Description Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cen ...