背景 ElasticSearch 的使用度越来越普及了,很多公司都在使用.有做日志搜索的,有做商品搜索的,有做订单搜索的. 大部分使用场景都是通过程序定期去导入数据到 ElasticSearch 中,或者通过 CDC 的方式来构建索引.在这种场景下,更新数据都是单条更新,比如 ID=1 的数据发生了修改操作,那么就会把 ElasticSearch 中 ID=1 的这条数据更新下. 但有些场景下需要根据条件同时更新多条数据,就像 Mysql 中我们使用 Update Table Set Name=…
根据多个条件更新数据 UPDATE sphwph SET BKXSHL=t2.BKXSHL FROM sphwph t1,sphwph_170420 t2 --(SELECT a.* FROM dbo.sphwph a JOIN spkfk b --ON a.spid = b.spid WHERE a.shl <b.jlgg AND a.shl<>0 AND a.hw='HWI00000001' --AND a.spid IN( --SELECT DISTINCT spid FROM d…
基于上一篇博文基础上,进行es的操作,document的新增比较简单,就不说了,这里主要说说更新操作. 更新操作,有两大类,一个是Replace,一个是Update,就是说一个是替换,一个是更新. 替换,就是全文档更换,而更新可以只针对文档的局部字段. 1. 这里先说简单的Replace的操作. 先创建一个document,索引名为gengxin,文档类型为replace. [water@CloudGame ES]$ curl -XPUT 'localhost:9200/gengxin/repl…
1.有时在做项目时会有些期初数据更新,从老系统更新到新系统.如果用程序循环从老系统付给新系统. 2.有时在项目中需要同步程序,或者自动同步程序时会有大量数据更新就可能用到如下方法了. 3.为了做分析,需要整合一些数据到一个表中,涉及到通过主键关联多个表,获取其中的某些字段的值,通过update可以简单实现,找了一篇文章,挺不错: 批量更新表时,update一个表的列时,需要依赖另外的表,这种依赖可以是where条件子句,也可以要update的field的值依赖另外的表通常有两种做法   1.使用…
语法: update test set 字段1=case when 条件1 then 值1 when 条件2 then 值2 end 示例: update PMS_ProjectInfo set ProProgress=case when ProProgress+@ProProgress >=1 then 1 else ProProgress+@ProProgress end where ProjectID=@ProjectID SQL条件判断语句 第一种: SELECT CASE WHEN p…
记录一下: 数据结构如下: public class ESUserTransaction { public long AccountId { get; set; } public string VarietyName { get; set; } public int OrganizationAgentId { get; set; } public int OrganizationMemberId { get; set; } public int OrganizationChannelId { g…
前面的基础, Elasticsearch之curl创建索引库 Elasticsearch之curl创建索引 Elasticsearch之curl创建索引库和索引时注意事项 Elasticsearch之cur查询索引 首先,明确一个概念,es包括全部更新和局部更新! ES全部更新 ES可以使用PUT或者POST对文档进行更新(全部更新),如果指定ID的文档已经存在,则执行更新操作. 比如,我这里,id=1文档存在,那么,就是es全部更新. 注意: es执行更新操作的时候,ES首先将旧的文档标记为删…
更新操作返回一个BOOL值,YES表示操作成功,NO表示执行过程遇到错误,可以通过-lastErrorMessage和-lastErrorCode查看错误信息.使用executeUpdate:方法执行更新: - (BOOL)executeUpdate:(NSString*)sql, ... - (BOOL)executeUpdateWithFormat:(NSString*)format, ... - (BOOL)executeUpdate:(NSString*)sql withArgument…
追加更新,学名不知道叫啥,我这里指在历史数据的基础上,追加数据更新.比如 价格数据,我在价格字段里面保存了一个每天价格的数组,追加更新的时候在数组的后面直接add,而不是像一般情况那样覆盖. ES追加更新采用painless脚本来实现. 1. 准备 第一步, 新建索引,创建mapping ### 创建 v0_test 的 map PUT {{host}}/{{index}}/_mapping content-type: application/json { "properties":…
在mysql中,如果你要根据某个字段的值不一样,来更新另一个字段的值,可以用如下sql语句: 如果仅仅是两个分支,if语句就可以了 update tm set page_name=if(q_aswer='A','this is AnswerA',page_name) 如果是多个分支,使用case: update tm set page_name=CASE q_aswer WHEN 'A' THEN 'aaa' when 'B' then 'bbb'  when 'C' then 'ccc' el…