一:ES的基本操作

1、索引操作

1.1、建立索引

语法:PUT /索引名 在没有特殊设置的情况下,默认有5个分片,1个备份,也可以通过请求参数的方式来指定.。
参数格式

PUT /user
{ "settings": {"number_of_shards": 5    //设置5个片区, "number_of_replicas": 1 //设置1个备份}
}

1.2、删除索引

语法:DELETE /索引名

DELETE /user

1.3、查询索引

语法:GET /索引名

GET /user

2、映射操作

2.1、建立映射

语法:PUT /索引

PUT /user
{ "mappings": { "user": { "properties": { "name": { "type": "text"}} } }
}

字段类型 type:double / long / integer / text / keyword / date / binary

注意:text和keyword都是字符串类型,但是只有text类型的数据才能分词,字段的配置一旦确定就不能更改 映射的配置项有很多,我们可以根据需要只配置用得上的属性.

2.2、查询映射

语法:GET /索引名/_mapping

3、基本操作-CRUD

3.1、新增和替换文档

语法:PUT /索引名/类型名/文档ID

参数格式:

PUT /user/user/1
{"id":1,"name":"战三","age":18
}

注意:

1)新增和替换文档时需要使用标准的JSON格式,不能使用简版的JSON 格式。
2)POST 操作也可以对文档进行新增和删除操作。他们的唯一区别就在于PUT 请求是硬着陆,会把文档中的属性全部强制更新(如:_id、_version等)。POST 请求 和 DEPETE 不会重置_verison,只会在其基础上+1。
3)一般推荐使用的是PUT 进行文档的更新和替换,POST 用的比较少。POST操作可以不指明文档的ID,但是我们存在ES中的数据一般都是转存过来的,不会自动生成,故不推荐使用POST。
4)当索引/类型/映射不存在时,会使用默认设置自动添加。 ES中的数据一般是从别的数据库导入的,所以文档的ID会沿用原数据库中的ID 索引库中没有该ID对应的文档时则新增,拥有该ID对应的文档时则替换。

每一个文档都内置以下字段

  • _index:所属索引
  • _type:所属类型
  • _id:文档ID
  • _version:乐观锁版本号
  • _source:数据内容

以下是PUT和POST 两种新增文档的区别:

3.2、删除文档

语法:DELETE /索引名/类型名/文档ID
示例如下:

DELETE /user/user/1

注意:这里的删除并且不是真正意义上的删除,仅仅是清空文档内容而已,并且标记该文档的状态为删除

3.3、查询文档

语法:

  • 查询所有(基本查询语句): GET /索引名/类型名/_search
GET /product/product/_search
  • 根据ID查询: GET /索引名/类型名/文档ID
GET /product/product/1

查询所有结果中包含以下字段:

  • took:耗时
  • _shards.total:分片总数
  • hits.total:查询到的数量
  • hits.max_score:最大匹配度
  • hits.hits:查询到的结果
  • hits.hits._score:匹配度

二 、批处理

1、简介

当需要集中的批量处理文档时,如果依然使用传统的操作单个API的方式,将会浪费大量网络资源,Elasticsearch为了提高操作的性能,专门提供了批处理的API。

2、bulk批量增删改

语法

POST /索引名/类型/_bulk { 动作:{"_id": 文档ID}}{...} {动作:{"_id": 文档ID}}{...}

动作:create / update / delete,其中delete只有1行JSON,其他操作都是有2行JSON,并且JSON不能格式化(即不能换行),如 果是update动作,它的数据需要加个key为doc
如:{“update”: {"_id": xx}} {“doc”: {“xx”:xx, “xx”:xx}}
示例如下:

#批量增删改user对象
POST /user/user/_bulk
{"create":{"_id":"3"}}
{"id":"3","name":"张三","age":18,"address":"湖南省","mobile":"17666555910","sex":"1"}
{"update":{"_id":"1"}}
{"doc":{"id":"1","name":"星华","age":17,"address":"广东省","mobile":"17666555910","sex":"1"}}
{"delete":{"_index":"user","_type":"user","_id":2}}

3、mget批量查询

语法:

 GET /索引名/类型/_mget{ "docs": [ {"_id": 文档ID}, ...]
}

示例如下:

#批量查询
GET /user/_mget
{"docs":[{"_id":"1"},{"_id":"3"}]
}

Elasticsearch基本操作 1:ES 基本操作、批处理相关推荐

  1. Elasticsearch 实战 - 第三讲:ES 基本操作、批处理

    Elasticsearch 实战 - 第三讲:ES 基本操作.批处理 Elasticsearch 实战系列文章: 一:ES的基本操作 1.索引操作 1.1.建立索引 1.2.删除索引 1.3.查询索引 ...

  2. ElasticSearch8.x.x 【一篇文章精通系列】【ES的基本操作,ES安装,ES head + Kibana】

    ElasticSearch8.x.x [一篇文章精通系列][ES的基本操作,ES安装,ES head + Kibana] 一.ElasticSearch的安装 1.解压安装ES 2.熟悉目录 3.启动 ...

  3. Elasticsearch系列-索引的基本操作

    Elasticsearch索引的基本操作 前言 索引基本操作 创建索引 常用数据类型 keyword text 数值类型 boolean date 数组类型 对象类型 nested 地理类型:geo_ ...

  4. ElasticSearch - SpringBoot集成ES

    文章目录 ElasticSearch - SpringBoot集成ES 1.整体设计思路(仿NBA中国官网) 2.项目搭建 3.ES API的基本使用 3.1 新增球员信息 3.2 查看球员信息 3. ...

  5. Elasticsearch:《大数据集群学习笔记与实战》之es集群(2)es基本操作

    1.es的相关操作 1.基本的概念 text 文本 通过 analysis分析 变成 索引词. 2.index  索引 相当于数据库 3.type 类型  相当于表:字段即列 4.document   ...

  6. 【Elasticsearch】15 ES文档的基本操作 aggregations 【执行聚合操作】

    一.描述 1. 搜素address 中包含mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情 按年龄聚合 GET bank/_search {"query": {&qu ...

  7. ElasticSearch核心概念以及基本操作

    一.核心概念 1.1Elasticsearch面向文档.关系行数据库.和Elasticsearch对比 Elasticsearch的文件存储,Elasticsearch是面向文档型数据库,一条数据在这 ...

  8. Elasticsearch 7.7.0 基本操作-基于 CMD 命令行

    ES7.0命令行操作 #检查ES节点是否正常启动 curl http://localhost:9200 #cat检测集群健康状况 curl http://localhost:9200/_cat/hea ...

  9. Elasticsearch学习---Query DSL基本操作

    版本说明 本文基于Elasticsearch6.4.0版本 关于DSL DSL是Elasticsearch提供的一种基于JSON格式的查询方式. 演示数据 mapping映射 {"emp&q ...

最新文章

  1. gulp几个常见问题及解决方案
  2. Oracle中sysdba身份和dba角色区别
  3. 设计模式-Builder模式
  4. 计算机桌面壁纸怎样拉伸,win10桌面壁纸怎么拉伸?手把手教你拉伸win10桌面壁纸的方法...
  5. 关联规则应用场景实例十则
  6. IOT(9)---MQTT 优缺点
  7. SQL Server 大数据群集 部署(二)工具篇
  8. 各类光纤接口类型的区别与图示
  9. ROS创建工作空间和source的解释
  10. Android内存优化大全(二)
  11. 荣耀畅玩5a android5.0,华为荣耀畅玩5A有几个版本?华为荣耀5A各版本区别对比介绍...
  12. android studio 屏幕翻转
  13. 电脑文件如何传到云服务器上,电脑文件如何传到云服务器上
  14. 【微信小程序调用百度API实现图像识别功能】----项目实战
  15. Serializable transient
  16. 数理逻辑初步:命题逻辑、一阶逻辑和二阶逻辑
  17. 域控策略之用户或计算机组策略例外配置
  18. 电脑处理文件数据丢失怎么办
  19. 2021亚丁百度网址URL批量采集工具【过安全验证】
  20. 更新TTK失败,请检查网络连接

热门文章

  1. 防腐投加器需要加盐吗_风冷却器的正确防腐措施应该怎么做?
  2. vscode设置python多进程调试_python之vscode配置开发调试环境
  3. java coroutine类_Coroutines和Rxjava异步编程对比
  4. 扫地机器人单扫和双扫_评测 | 千元以下的扫拖一体机器人,到底值不值得买?...
  5. Oracle备份与还原(exp和imp),导出导入
  6. Harbor快速部署到Kubernetes集群及登录问题解决
  7. Node.js 线程你理解的可能是错的
  8. C# 中XML序列化与反序列化学习笔记
  9. condition_variable的怪事
  10. ContentProvider中gettype() 和MIME类型的理解