ElasticSearh更新nested字段(Array数组)。怎么根据查询条件(query)复制一个(index)到新的Index how to update by query a nested fields data for elasticsearch

GET usernested/_search
{
  "query": {
    "nested": {
      "path": "tags",
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "tags.brandid": "93a8296c-5b64-49ea-bd92-b19192def2e9"
              }
            },
            {
              "term": {
                "tags.site": "163"
              }
            }
          ]
        }
      }
    }
  }
}

//按照条件新建一个index 作为测试数据使用
POST _reindex
{
  "source": {
    "index": "usernested",
    "query": {
      "nested": {
        "path": "tags",
        "query": {
          "bool": {
            "must": [
              {
                "term": {
                  "tags.brand": "c55fd643-1333-4647-b898-fb3e5e4e6d67"
                }
              },
              {
                "term": {
                  "tags.site": "163"
                }
              }
            ]
          }
        }
      }
    }
  },
  "dest": {
    "index": "new_usernested"
  }
}

//查询
GET new_usernested/_search
{
  "query": {
    "nested": {
      "path": "tags",
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "tags.brand": "c55fd643-1333-4647-b898-fb3e5e4e6d67"
              }
            },
            {
              "term": {
                "tags.site": "163"
              }
            }
          ]
        }
      }
    }
  }
}

//根据条件更新一个 nested的文档
GET usernested/_update_by_query
{
  "query": {
    "nested": {
      "path": "tags",
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "tags.brand": "c55fd643-1333-4647-b898-fb3e5e4e6d67"
              }
            },
            {
              "term": {
                "tags.site": "163"
              }
            }
          ]
        }
      }
    }
  },
  "script": {
    "inline": "for(e in ctx._source.tags){e.brand = ‘test2‘;}" //更新nested字段    //"inline":"ctx._source.userid = ‘testid‘"  //更新普通字段
  }
}
时间: 2024-11-10 00:07:33

ElasticSearh更新nested字段(Array数组)。怎么根据查询条件(query)复制一个(index)到新的Index how to update by query a nested fields data for elasticsearch的相关文章

JS中Array数组的三大属性用法

Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了Array数组的3个属性,length属性.prototype属性.constructor属性使用,并附注Array数组对象的8个分类及多个方法使用,具体如下: 对象的3个属性 1.length属性 length属性 Length属性表示数组的长度,即其中元素的个数.因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-

利用字节流和字节数组流是实现文件的复制

package ioxuexi; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;i

MongoDB批量更新不同查询条件的数据

今天遇到这样一个场景:在Java中批量更新MongoDB数据,不过每次更新的条件有不一样,那如何有效地进行更新操作呢? 刚开始的时候,我是想到循环批量更新操作,即每一种查询条件进行一次批量更新过程,这样的思路就是多个查询条件就需要进行多次的批量更新,带来的弊端是跟数据库的连接交互太频繁了,消耗的时间都浪费在这些过程中了:那么今天我们可以通过一种新的思路来避免这种负面影响,即只需要两次连接交互就可以了. ------20200113勉 原文地址:https://www.cnblogs.com/bi

Javascript中的Array(数组) 、{}(映射) 与JSON解析

做网页总会使用javascript,使用javascript总会使用JSON.最近用到一下,就写写. 下面是总结: 1.将javascript中的Array和{}转化为json字符串可以使用json2.js,源码地址https://github.com/douglascrockford/JSON-js. 2.将json字符串转为javascript对象,可以使用javascript自带的eval函数. 3.javascript中可以使用typeof查看变量的类型. 4.要访问json字段,必须是

不依赖驱动更新blob字段

不依赖驱动更新blob字段,场景如下: tomcat发布到weblogic上,使用weblogic的连接池,就抛错了,如下: java.lang.ClassCastException: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB 开发代码如下: oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("TRANSFERDATA"); BufferedOutputStream bos = new B

EF更新指定字段...

EF更新指定的字段... 搜来搜去发现没有自己想要的啊... 或许本来就有更好的办法来实现我这个,所以没有人来搞吧... 如果有,请不吝告知..GG.. //要更改UserInfo表中指定的列,比如这个表有15列,如果很多列都要更新,就要判断要更新哪个不要更新哪个.. //现在这样就是传过来多少列,循环更新下就可以了 public string UserInfo_Update_Test(string jsonParames) { jsonParames = "一个json串";//比如

PHP-Manual的学习----【语言参考】----【类型】-----【array数组】

1.Array 数组  PHP 中的 数组 实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性.由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的. 解释这些结构超出了本手册的范围,但对于每种结构至少会提供一个例子.要得到这些结构的更多信息,建议参考有关此广阔主题的其它著作. 2.语法:定义数组 array()  可以用 ar

Array数组标准库

概述 Array是JavaScript的内置对象,同时也是一个构造函数,可以用它生成新的数组. 作为构造函数时,Array可以接受参数,但是不同的参数,会使得Array产生不同的行为. 无参数时,返回一个空数组: 如果使用一个正整数作为参数,则这个正整数表示新数组的长度: 如果使用非数值(字符串.布尔值.对象等)作为参数,则该值是新数组的成员: 如果参数在一个以上,则这些参数都是新数组的成员. var a1 = new Array(); var a2 = new Array(1); var a3

Array(数组)的使用

方法 说明 Concat() 连接2个或多个数组,并返回结果 Push() 向数组末尾添加一个或多个元素,并返回新的长度 Reverse() 颠倒数组中元素的顺序 Sort() 对数组的元素进行排序 Slice() 从某个已有的数组返回数组选定的元素 toString() 把数组转换成字符串 Join() 连接 toLocaleString() 把数组转换为本地字符串,并返回结果 <script type="text/javascript" language="java