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

Posted iDEAAM 爱地爱木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearh更新nested字段(Array数组)。怎么根据查询条件(query)复制一个(index)到新的Index how to update by query a nes相关的知识,希望对你有一定的参考价值。

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‘" //更新普通字段 } }

 

以上是关于ElasticSearh更新nested字段(Array数组)。怎么根据查询条件(query)复制一个(index)到新的Index how to update by query a nes的主要内容,如果未能解决你的问题,请参考以下文章

NEST教程系列:字段映射-自动映射

centos 部署 elasticsearh 7.8.1

使用 NEST 字段提升的弹性搜索

如何在 NEST 中禁用驼峰式 Elasticsearch 字段名称?

使用 NEST 2.x 使用多字段映射语法创建索引

如何在 nest.js 中重命名 JSON 字段