Elasticsearch学习笔记-04修改数据

Elasticsearch提供了近乎实时操作和检索数据的能力。默认情况下,在你新增/更新/删除数据之后,大概只有一秒的延迟即可反应在最新的搜索结果中。和其他的平台例如SQL的及时生效比较起来还是有比较大的区别的。

(新建)索引/替换文档
我们之前已经知道了如何索引一个文档,咱们再来复习一下:

PUT /customer/external/1?pretty
{
"name": "John Doe"
}

上面的命令会在customer索引中创建external类型的ID为1的customer文档。如果我们再一次执行上面的命令,Elasticsearch将会替换(重建索引)ID为1的customer文档。

PUT /customer/external/1?pretty
{
"name": "Jane Doe"
}

上面的命令将ID为1的客户名称从John Doe修改为Jane Doe。另外,如果我们使用一个不同的ID,则会创新一个新的文档索引。原ID=1的文档也不会被修改。

PUT /customer/external/2?pretty
{
"name": "Jane Doe"
}

上面的命令将会创建一个新的ID为2的文档。

创建索引的时候,ID是可选的。如果不指定ID,Elasticsearch会生成一个随机ID并使用该ID来索引文档。那个实际的Elasticsearch生成的ID会随调用API的结果一起返回。
下面的例子示意了如何不指定ID而创建一个文档:

POST /customer/external?pretty
{
"name": "Jane Doe"
}

注意上面的例子,我们使用POST方式而非PUT,因为我们没有指定ID。

本文系本人根据官方文档的翻译,能力有限、水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸。
原文出处:https://www.elastic.co/guide/en/elasticsearch/reference/current/_modifying_your_data.html

时间: 2024-10-10 08:08:34

Elasticsearch学习笔记-04修改数据的相关文章

Elasticsearch学习笔记-04.1更新文档

除了创建和替换文档,我们也可以更新文档.需要注意的是Elasticsearch在底层并不会整的更新文档.当我们执行更新操作的时候,Elasticsearch会一次性完成先删除,再新建一个文档.下面的例子示意了如何将我们之前索引的ID为1的文档的name字段修改为"Jane Doe": POST /customer/external/1/_update?pretty { "doc": { "name": "Jane Doe" }

Elasticsearch学习笔记——安装和数据导入

到elasticsearch网站下载最新版本的elasticsearch 6.2.1 https://www.elastic.co/downloads/elasticsearch 下载tar包,然后解压到/usr/local目录下,修改一下用户和组之后可以使用非root用户启动,启动命令 ./bin/elasticsearch 然后访问http://127.0.0.1:9200/ 接下来导入json格式的数据,数据内容如下 {"index":{"_id":"

Elasticsearch学习笔记-04.2删除文档

删除文档非常的简单而直观.下面的例子示意了如何删除我们之前创建的ID为2的客户文档: DELETE /customer/external/2?pretty 要删除所有满足检索条件的文档可以参考 [Delete By Query API].不过这个API并没有太大价值,因为删除整个索引要比删除索引中的满足条件的所有的文档来的更高效. 本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. https://www.elastic.c

MySQL学习笔记之五 有关数据表操作

MySQL在创建表的时候,创建一个.frm文件保存表和列定义.索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中.   一.用SHOW/ DESCRIBE语句显示数据表的信息 语法: SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM

iOS 学习笔记——0005(数据存储)

先发一个练手的小demo,自己写的简略通讯录,已上传至github https://github.com/liaoshaolim/addressBook 1.NSKeyedArchiver:(归档) 这里用一个添加联系人的例子来说明: 注意:归档形式保存数据,需要该对象遵守NSCoding协议,而且对应的必须提供encodeWithCoder和initWithCoder方法 因为归档是一次性的,解压也是一次性的,所以小量的ok,如果量大的话,改一个小地方就要归档或解压全部,效率会比较低 //用一

【OpenGL 学习笔记04】顶点数组

通过之前的学习,我们知道,如果要绘制一个几何图形,那就要不断的调用绘制函数,比如绘制一个20条边的多边形,起码要调用22条函数(包含glBegin和glEnd). 所以OpenGL提供了一系列的顶点数组函数减少函数调用的次数来提高性能.而且使用顶点还可以避免顶点共享的冗余处理. 1.简单示例 先来回顾一下之前我们是怎么画直线的: void drawOneLine(GLfloat x1,GLfloat y1,GLfloat x2,GLfloat y2) { glBegin(GL_LINES); g

elasticsearch学习笔记——相关插件

logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格格不入啊.国内的开源社区做了也很长时间,可是也没出现什么拿的出手的东西,可能只还有阿里比较注重分享一些. ES的查询速度非常快,搜索非常快.但是呢,我们的数据还是主要存在传统的关系型数据库中的.有没有什么办法可以将数据库中的数据实时同步到ES中呢.logstash就是这么一个东西. Logstash

javascript学习笔记——如何修改<a href="#">url name</a>

0.前言 使用了一段时间javascript,再花了点时间学习了jquery,但是总是感觉自己很"迷糊",例如<a href="#">url name</a>中,如果修改href中的"#"应如何编写代码,如果修改url name应如何编写代码.再加上javascript和jquery操作方法略有不同,所以我就更"迷糊"了. [说明] 曾经使用关键词--"innerHTML和value区别&qu

学习笔记:Oracle 12C 数据非常规恢复工具bbed的使用说明

ORACLE 12C 依然支持 bbed,ORACLE 12C的测试版出来了,对于习惯了使用bbed(ORACLE 手术刀)的人来说,12C是否继续被支持是一个很让人关注的问题,通过本实验测试,12C继续支持bbed,很多艰难的数据库恢复依然可以通过bbed来实现,也从侧面说明,ORACLE 12C在块的结构上还依然和以往版本相似 数据库信息 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.0.2 Beta