ES 6 常用API

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1. Cluster API

1.1 查看集群健康
GET /_cat/health?v
1.2 查看索引
GET /_cat/indices?v

2. Document API

2.1 增

2.1.1 单个文档

Index
指定ID时,如果ID不存在则创建新文档;如果ID存在,则先删除旧文档再创建新文档,并自增版本号。

PUT {index}/{type}/{id}
{
  "field": "value",
  ...
}

# 自动生成ID,GUID 字符串。
POST {index}/{type}

# 指定routering参数,默认对ID进行Hash取模。
POST {index}/{type}?routing=xxx

Create
若ID已存在,则失败。

PUT {index}/{type}/{id}/_create

2.1.2 批量

见Bulk

2.2 删

所有更新操作,包括删除,会导致版本号增加。删除操作会被记录在.del文件,在检索返回前利用其对结果进行过滤。后台段合并操作时,会摒弃删除数据。
见:?refresh

2.2.1 单个删除

DELETE {index}/{type}/{id}

2.2.2 批量删除 delelte_by_query

根据查询条件删除,ES在删除前会创建快照,如果在执行删除期间文档发生改变导致内部版本不匹配,则不会删除该文档。

POST {index}/{type}/_delete_by_query
{
  "query": { 
    ...
  }
}

2.3 改

ES支持局部更新和整体更新,但由于文档是不可变的,更新都是先删除旧文档再重新索引新文档,并自增版本号。ES使用_version作为乐观锁,如果在更新期间,文档被其它线程修改,将会导致更新失败。在无关顺序的增量操作场景下,可以使用retry_on_conflict参数来控制重试次数。

2.3.1 单个修改

局部更新
将doc中的字段覆盖现有文档的现有字段

POST {index}/{type}/{id}/_update
{
  "doc":{
    field to update...
  }
}

结合script
脚本中,通过ctx前缀来访问_source、_index、_version等字段。source中可访问params中的变量,已使得ES可以复用脚本。

POST {index}/{type}/{id}/_update
{
  "script" :{
    "source" :"...",
    "params" : {
      param...
    }
  }
}

upsert
当文档不存在时,使用upserts中的字段创建新的文档。根据响应的result字段可得知created还是updated。

POST {index}/{type}/{id}/_update
{
   "script" : "ctx._source.views+=1",
   "upsert": {
       "views": 1
   }
}

2.3.2 批量修改 update_by_query

利用script对符合查询条件的文档进行更新,同delete_by_query,利用版本号进行并发控制。当遇到更新冲突时,会中断更新操作,但是并不会回滚已经被更新的文档。conflicts=proceed可以在发生冲突时,不打断更新进程。

POST {index}/{type}/_update_by_query
{
  "script": {
  ...
  },
  "query": {
  ...
  }
}

2.3 查

GET默认是实时操作,会触发一次刷新,将内存中的文档组合成段,使之可见。而Sear

es6新增api 1、Object.is(),判断两个值是否相等(1)两个参数时,实现的是对象的复制、拷贝返回值:返回第一个参数Object.assign()方法实现的是半深拷贝,半深拷贝指的是被复制的对象里面有引用数据类型,实现的就是半深拷贝;而深拷贝指的是被复制的对象里是基本数据类型,实现的就是深拷贝。(2)三个参数时,表示合并对象,把后两个对象合并到第一个对象,并返回第一个对象3、获取原型对象的方法(1)obj.4、设置原型对象的方法。 阅读详情

相关推荐

ES6常见API

let与const let关键字,用来声明变量,它的用法类似于var。 let不允许重复声明变量; var a = 1; var a = 2; console.log(a); let b = 1; let b = 2; console.log(b);//报错 let声明变量仅在块级作用域内有效; for (var i = 0; i < 10; i++) { console.log(i); }; alert(i); for (let v = 0; v < 10; v++) {

weixin_44064067的博客 3665

ElasticSearch在开发中的使用总结

1.前言 项目中需要对较大量的数据进行搜索和分析,所以就E对lasticSearch进行研究在这记录一下. 2.ElasticSearch是什么? 是一个高可用开源全文检索和分析组件。提供存储服务,搜索服务,大数据准实时分析等。一般用于提供一些提供复杂搜索的应用。基于Lucene的搜索服务器(是一个基于 lucence 可水平扩展的自动化近实时全文搜索服务组件)。 基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索

启迪思维,精进技术 589

ES6常用API详讲

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。var:变量提升、造成全局污染let:没有变量提升、不会造成全局污染、块级作用域、不可重复声明const:没有变量提升、不会造成全局污染、块级作用域、不可重复声明、声明常量,一旦声明无法修改。

m0_57726319的博客 1055

ES6-常用API

API

qq_56769697的博客 482

总结ES6ES10常用API

es6es10常用api

Snlyxiaoguais的博客 711

js es5和es6有哪些常用api

ES5 和 ES6 分别代表了 JavaScript 发展的两个重要阶段。ES5 主要增加了对数组和对象操作的支持,而 ES6 引入了更多的语言特性,如类、模块、箭头函数等,极大地提升了 JavaScript 的开发体验。了解这些 API 的使用方法,可以帮助开发者更高效地进行 Web 开发。

ivan5277的博客 789

ES6总结(常用API

@ES6相关知识总结 let和const let 用法和var差不多,新增用来定义变量的关键字,但是有些地方不同需要注意 let不允许重复声明变量,强行声明报错 let声明变量只能在块级作用域内有效,ES6新增加块级作用域的概念 let声明变量不能声明和函数形参相同的变量,会报错 let声明变量不会被提升,所以只能在声明之后才能进行使用,在之前使用会报错 暂时性死区(TDZ):ES6规定,在一...

qq_39478346的博客 525

整理ES6常用的几个object API

整理一下一些ES6中经常用到的对象API。 NO1:对象拼接 后面的参数target是目标对象,后面可以跟若干个源对象,此API的作用是将多个源对象拼接在目标对象之后,组成一个对象。 NO2:创建一个对象 用此方法创建一个对象,新创建的对象会继承“原型对象”的属性,但这些属性并不是新创建对象本身的属性。 NO3:为一个对象定义一个property pro

Lavender的博客 3033

ES6 常用API详解

转载请注明预见才能遇见的博客:http://my.csdn.net/ 原文地址: ES6 常用API详解 字符串转Int和Float类型,JS没有单双精度之分,只有Float没有Double,所以也没有parseDouble。单精度在内存中占32位4个字节有效数字6-7位,双精度占64位8个字节有效数字15-16位,一般常量都是双精度处理的,float a = 0.5报错,flo

pcaxb的专栏 6145

整理ES6常用的几个数组API

开始学习es6时,对于数组的几个常用API不是很清楚,经过一段时间的学习,不敢说已经非常熟悉,学习是一个漫长的过程,整理一下在使用这些API过程中的一些心得体会。 no.1  map map函数可以看成一种映射函数,而且是一一映射,几个萝卜几个坑。 array.map(function(参数){ .... 函数体 ...... }) es6提出了箭头函数,所以也可以写成:

Lavender的博客 1万+

ES6常用API

ES6常用API 一、let let关键字,用来声明变量,它的用法类似于var。 1、let不允许重复声明变量; var a = 1; var a = 2; console.log(a);//2 var b = 3; let b = 4; console.log(b);//Identifier 'b' has already been declared 2、 不会添加到window对象下 let b = 4; console.log(window.b);//undefined 3、let声明变量仅

Donough★ 806

ES 6常用api

es6

qq_60587956的博客 1031

ES6常用API 及用法

* let { foo, bar } = { foo: "aaa", bar: "bbb" };foo // "aaa"bar // "bbb" * function add(...values) {  let sum = 0;   for (var val of values) {    sum += val;  }   return sum;} add(2, 5, 3) // 10  * va...

gwdgwd123的博客 1749

ES6常用语法和API

ES6常用语法和API

qq_47633695的博客 460

ES6 数组的一些常用API

every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。 // const isBelowThreshold = (currentValue) => currentValue < 40; // const array1 = [1, 30, 39, 29, 10, 13]; // console.log(array1.every(isBelowThreshold)); // true 数组中的值都小于 40 some() 方法测试数组中是不是至少有1..

qq_37550440的博客 1179

elasticsearch6.7版本常用的java API记录

本文使用的是阿里云elasticsearch6.7版本 官方API地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.7/java-rest-high-search.html /** * 创建索引 * @param index * @throws IOException ...

好好学习,不断总结 3391

ESNEXT(ES6及以后)常用API解析

ES6及以后新增的常用API解析 注:例子建立在非严格模式下,新版chrome浏览器下 严格模式下:window为undefined node下:window为global let和const和var的区别 for(var i = 0 ; i < 3 ; i++){ setTimeout(()=>{ console.log(i); },0) } 输出 3 3 3 为什么? 因为for循环是同步任务顺序执行,var定义是全局变量,setTimeout为宏任务,会放到

qq_43011103的博客 1920

ES6- Map-1介绍及常用api

ES6- Map-1介绍及常用apiMap简介Map对象的创建Map-api介绍1. add() 往Map中添加键值对2. get() 根据key取value3. delete() 根据key删除键值对4. keys() 获取所有的key5. values() 获取所有的value6. has() 判断map是否具有某个key7.clear() 清空Map8.size() 获取Map的长度9...

Quan 845
上一篇: 线上MySQL死锁分析——索引设置不当导致的死锁
下一篇: Elasticsearch架构与基本原理
萝卜头柯克船长
博客等级 码龄16年 20粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值