文档章节

elasticsearch5.3 3

柯里昂
 柯里昂
发布于 2017/04/06 15:27
字数 543
阅读 70
收藏 1
  • 记录修改
curl -XPUT "localhost:9200/customer/external/1?pretty&pretty" -H "Content-Type: application/json" -d "{  \"name\": \"John Doe\" }"

ID还是1,换个名字

curl -XPUT "localhost:9200/customer/external/1?pretty&pretty" -H "Content-Type: application/json" -d "{  \"name\": \"Jone Doe\" }"

换个ID,名字一样

curl -XPUT "localhost:9200/customer/external/2?pretty&pretty" -H "Content-Type: application/json" -d "{  \"name\": \"John Doe\" }"

不指定ID,ES会随机生成一个。 值得注意的是,这里使用POST,而不是PUT。

curl -XPOST "localhost:9200/customer/external?pretty" -H "Content-Type: application/json" -d "{  \"name\": \"John Doe\" }"
  • 更新记录

ES不支持原地更新,所谓的更新只是删除之后再重新index。

curl -XPOST "localhost:9200/customer/external/1?pretty" -H "Content-Type: application/json" -d "{  \"name\": \"Corleone\" }"

修改名字的同时,再加个age属性。

curl -XPOST "localhost:9200/customer/external/1?pretty" -H "Content-Type: application/json" -d "{  \"name\": \"nancy\", \"age\":18 }"

age属性如果存在的情况下,也可以使用script方式更新,如 age = age + 5

curl -XPOST "localhost:9200/customer/external/2/_update?pretty&pretty" -H "Content-Type: application/json" -d "{ \"script\" : \"ctx._source.age += 5\" } "

目前上述方式只支持对一个记录更新。ES后续可能会提供类似SQL 的 update where 更新操作。

Note that as of this writing, updates can only be performed on a single document at a time. In the future, Elasticsearch might provide the ability to update multiple documents given a query condition (like an SQL UPDATE-WHERE statement).

  • 删除记录

按照id删除记录

curl -XDELETE "localhost:9200/customer/external/2?pretty&pretty"
  • 批处理

index id=1 设置name = "John Doe" 并且 index id=2 设置name = "Jane Doe"

curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
'

id=1,更新 name = "John Doe becomes Jane Doe" 并且 删除 id=2的记录

curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
'

值得注意的是,删除操作只需要ID,并且删除后无需追加信息。

bulk api 不是事务的,任何一个操作不管什么原因失败了,剩下的操作依然会继续执行。并且在最后返回状态。此状态会展示失败的数量和具体信息。

官网 官网 官网 官网

© 著作权归作者所有

共有 人打赏支持
上一篇: es sense
下一篇: elasticsearch 5.3 1
柯里昂
粉丝 25
博文 173
码字总数 82699
作品 0
徐汇
技术主管
私信 提问

暂无文章

windows10小鹤双拼注册表

《安全第一》直接发文本内容,自己建文本,改文本后缀reg。 使用方法: 1.复制下示文本内容,打开你的文本编辑器(#记事本notepad或其他++),粘贴文本内容并保存在任意位置(不影响使用) ...

漫步海边小路
2分钟前
0
0
一、数据挖掘

数据挖掘的发展动力---需要是发明之母 数据爆炸问题 自动数据收集工具和成熟的数据库技术使得大量的数据被收集,存储在数据库、数据仓库或其他信息库中以待分析。我们拥有丰富的数据,但却缺...

凯文加内特
6分钟前
0
0
Java线程池ThreadPoolExecutor

线程池 ThreadPoolExecutor 线程池是ExecutorService的实现,可以通过Executors执行工厂构造不同类型的执行服务(线程池)。 ThreadPoolExecutor线程池使用的是阻塞队列BlockingQueue。 用于...

器石_
6分钟前
0
0
Mybatis 实现SQL拦截并在控制台打印SQL和参数

注:可以拦截sql 执行时间,优化sql。并打印sql 以及参数 第一步:创建类: SqlPrintInterceptor 并实现 Interceptor 该类如下: package com.ra.common.plugin;import org.apache.ibati...

轻量级赤影
9分钟前
1
0
Log4j2 配置

config: <?xml version="1.0" encoding="UTF-8"?><!-- http://logging.apache.org/log4j/2.x/manual/appenders.html --><!-- status 负责打印日记系统的 WARN 级别以及以上的日记 --><C......

Credo-Zhao
10分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部