一、Elasticsearch 索引(新建)一个文档的命令:

curl XPUT ' http://localhost:9200/test_es_order_index/test_es_order_type/1 ' -d '

{
"id": 5,
"name": "test555",
"skuName": "55",

"age":23

}

'

这里test_es_order_index 是_index名称,test_es_order_type是_type类型名称,1是_id号。

需要注意的是,如果不指定ID,那么需要使用POST命令,而不是PUT。

二、更新文档

除了索引和替换文档,ES还支持更新文档。更新文档其实是先删除旧的文档,再索引新的文档。

如果想要更新文档内容,可以按照下面的方式进行:

curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/1/_update?pretty' -d '
{
"doc": { "name": "Jane Doe" }
}'

由于是先删除再索引,因此可以额外增加新的字段:

curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/1/_update?pretty' -d '
{
"doc": { "name": "Jane Doe", "age": 20 }
}'

当然也支持使用脚本进行更新:

curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/1/_update?pretty' -d '
{
"script" : "ctx._source.age += 5"
}'

其中ctx._source代表了当前的文档,上面的意思 是 在当前文档的基础上age加5.

三、删除文档

删除文档就很简单了,只需要指定文档的索引、类型、ID就行了:

curl -XDELETE 'localhost:9200/test_es_order_index/test_es_order_type/1?pretty'

四、批量操作

除了索引、替换、更新和删除,ES为了减少来回的响应信息,可以一次性执行多个命令,最后统一返回执行结果。

例如:

curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/_bulk?pretty' -d ' 
{"index":{"_id":"1"}} {"name": "John Doe" } {"index":{"_id":"2"}} {"name": "Jane Doe" } '

上面的命令可以同时插入两条数据。

_bulk命令不仅仅支持单个命令执行多条,还只是多种不同的命令执行多条。

curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/_bulk?pretty' -d ' 
{"update":{"_id":"1"}} {"doc": { "name": "John Doe becomes Jane Doe" } } {"delete":{"_id":"2"}} '

上面的命令中,先更新id为1的文档,再删除id为2的文档。

Elasticsearch 索引、更新、删除文档的更多相关文章

  1. MongoDB(二)创建更新删除文档

    插入并保存文档操作 用insert向目标集合插入文档,如果没有_id键则会自动添加.最后自动保存. >db.foo.insert({"bar":"baz" ...

  2. MongoDB创建\更新\删除文档操作

     一.插入\创建文档 --当插入一个不存在的文档时,会自己主动创建一个文档 [root@racdb ~]# mongo MongoDB shell version: 2.4.14 connecti ...

  3. 2.MongoDB系列之创建更新删除文档

    1. 插入文档 // 单条插入 db.getCollection('blog').insertOne({'type': 'mongodb'}) // 批量 插入 db.getCollection('b ...

  4. 《mongoDB》基本操作-创建/更新/删除文档

    一:基本操作 - db; 当前选择的集合(等于数据库名) > db demo -  use db_name; 选择你要操作的集合 > use demo switched to db dem ...

  5. Remove 以及dorp做实验验证MongoDB删除文档后索引是否会自动删除

    下面是实验步骤: > db.things.find(){ "_id" : ObjectId("5652d71a1524dc14663060e8"), &q ...

  6. Elasticsearch 创建、更新、删除文档、处理冲突

    ----创建新文档---- 1._index,_type和_id的组合可以唯一标识一个文档,所以确保一个新文档的最简单的办法就是,使用索引请求的POST形式让elsticsearch自动生成唯一_id ...

  7. 详细描述一下 Elasticsearch 更新和删除文档的过程?

    1.删除和更新也都是写操作,但是 Elasticsearch 中的文档是不可变的,因此不 能被删除或者改动以展示其变更: 2.磁盘上的每个段都有一个相应的.del 文件.当删除请求发送后,文档并没有真 ...

  8. Elasticsearch 删除文档

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  9. ElasticSearch 基本概念 and 索引操作 and 文档操作 and 批量操作 and 结构化查询 and 过滤查询

    基本概念 索引: 类似于MySQL的表.索引的结构为全文搜索作准备,不存储原始的数据. 索引可以做分布式.每一个索引有一个或者多个分片 shard.每一个分片可以有多个副本 replica. 文档: ...

随机推荐

  1. 织梦漏洞可疑PHP文件/article文件夹

    常见可疑文件夹: 1:article文件夹:最近很多织梦系统网站根目录被上传article文件件,里面有很多赌博静态违法html页面,可疑直接删除,此类违法信息大部分是由于您的网站存在dedecms安 ...

  2. python 有class外壳不一定是oop,到底怎么oo?

    1.继承 封装 多态是面向对象的三大特点,当年在考c++期末考试时候这三个特点还是作为填空题出现的. 而且老师也反复唠叨继承封装 多态,这三个词语是背得滚瓜烂熟了,但因为不是特别专业的计算机科班,学得 ...

  3. c++友元函數---16

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的.例 ...

  4. Java使用String类格式化当前日期

    在输出日期信息时,经常需要输出不同格式的日期格式,本实例中介绍了String字符串类中的日期格式化方法,实例使用不同的方式输出String类的日期格式参数值,组合这些值可以实现特殊格式的日期字符串. ...

  5. iOS - 解决Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named

    1  本来cocopods没有问题,最近创建项目,利用cocopods导入第三方库的时候,出现如下错误: [!] Unable to add a source with url `https://gi ...

  6. COM组件没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))

    1.解决办法:在项目属性里设置“生成”=>“目标平台”为x86而不是默认的ANY CPU:

  7. 【代码审计】711cms_V1.0.5 目录遍历漏洞分析

      0x00 环境准备 711CMS官网: https://www.711cms.com/ 网站源码版本:711CMS 1.0.5 正式版(发布时间:2018-01-20) 程序源码下载:https: ...

  8. thinkjs中修改默认主键

    报错信息: { Error: ER_BAD_FIELD_ERROR: Unknown column 'a_role.id' in 'field list' 还原场景: a_role这张表没有自增的id ...

  9. ThinkPHP5 封装邮件发送服务(可发附件)

    1.Composer 安装 phpmailer 1 composer require phpmailer/phpmailer 2.ThinkPHP 中封装邮件服务类 我把它封装在扩展目录 extend ...

  10. Sqlserver Sequence操作

    USE [database_test] GO --创建SEQUENCE CREATE SEQUENCE defaultSequence AS INT --设置开始行 START --自增量 INCRE ...