栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ELK--- Elastic Search快速入门CURD操作

ELK--- Elastic Search快速入门CURD操作

文章目录
  • Elastic Search数据格式
  • Elastic Search的CURD操作
    • 创建索引
    • 删除索引
    • 增加文档
    • 查询文档
    • 修改文档
    • 删除文档
  • 自动生成id
  • 自定义返回数据
  • 强制创建
  • 脚本更新
  • _version乐观锁控制

Elastic Search数据格式
  • 传统:应用系统的数据结构都是面向对象的,将数据对象存储到数据库,查询的时候将关联的对象再聚合起来。
  • ES:Elastic Search面向文档,文档中存储和传统数据库一样的对象。

例如学生和班级的关系:

public class Student {
  private String id;
  private String name;
  private String classId;
}
private class Classes {
  private String id;
  private String className;
}

传统的数据库中要设计所谓的一对多,多对一的两张表,添加外键等。查询时需要进行关联,过程繁琐。

ES规避了这种繁琐的设计,直接将学生存储为一个文档:

{
"id":"1",
"first_name": "san", 
"last_name": "zhang", 
"classInfo": {
"id": "1",
"className": "三年二班"
	}
}
Elastic Search的CURD操作 创建索引

语法:PUT /index

删除索引

语法:DELETE /index

增加文档

语法:PUT /index/type/id

查询文档

语法:GET /index/type/id

修改文档
  • 全文替换
    全文替换是将文档的所有信息进行覆盖,需要填写所有的字段。

语法:PUT /index/type/id

  • 局部替换
    局部替换只会替换当前需要替换的字段。

语法:POST /index/_update/id
在doc中传入想要修改的字段。

删除文档

语法:DELETE /index/type/id

自动生成id

在创建的时候,我们可以选择手动创建id,也可以不传入id,这是ES会自动生成id。

ES提供生成20位base64编码的GUID,通过算法使得id不会重复,即使是在分布式的情况下。

语法:POST /index/type/

自定义返回数据

有些时候数据过于多,但是只需要返回所需的字段,可以自定义获取目标字段。

语法:GET /index/type/id?_source_includes=字段1,字段2……

强制创建

全局更新可以理解为再次创建了新的文档,因为传入了全部字段。仔细回看全局更新会发现,在更新的时候version字段会进行累加,这是因为更新的时候创建了新的文档,旧文档并没有删除,而是标记为deleted状态,等到合适的时间ES会进行批处理统一删除。

为防止覆盖原有数据,ES提供了强制创建,这样不会覆盖原有文档。

语法:PUT /index/type/id/_create

脚本更新

ES支持使用内置脚本执行复杂操作。

例如:将id为1的学生age增加为10岁。

POST /stu/class1/1/_update
{
//ctx表示当前内容  当查询的时候数据都是保存在_source中的
   "script" : "ctx._source.age += 10"
}



此时的年纪由创建的18岁变为了28岁(一下子变老咯~)。

更多关于脚本的内容可以参考官网:elastic官网脚本文档,这里不做过多的赘述。

_version乐观锁控制

对于ES,文档的增删改都是基于版本号_version。
上述的例子已经证明改是版本号增加,对于增和删这里就不做演示了。
为什么会采用这种所谓的延时策略?这是因为对于ES来说,每当有数据需要删除的时候,如果立刻进行删除,所有分片和副本也都需要立刻进行删除,这对于ES集群来说压力太大,因此ES采用这种方法来减缓压力,待到合适时机统一进行删除。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/695809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号