ES: update by query

这篇具有很好参考价值的文章主要介绍了ES: update by query。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

es 版本为7.9.3

_update_by_query 的应用场景

  • 1、修改一个字段的值
  • 给es里某个字段增加一个子类型,要求之前的数据也能被查询到

造数据

POST test
{
  "mappings" : {
      "properties" : {
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
}


POST test/_doc/1
{
  "name": "chb",
  "age": "20"
}

POST test/_doc/2
{
  "name": "ling",
  "age": 18
}

POST test/_doc/3
{
  "name": "旺仔",
  "age": 1
}

POST test/_doc/4
{
  "name": "李四"
}


1、修改一个字段的值

# 修改李四的年龄为44
POST test/_update_by_query
{
  "script": {
    "source": "ctx._source.age = 44",
    "lang": "painless"
  },
  "query": {
    "bool": {
      "must_not": [
        {
          "exists": {
            "field": "age"
          }
        }
      ]
    }
  }
}

ES: update by query

2、 给es里某个字段增加一个子类型,要求之前的数据也能被查询到

修改mapping,添加一个子字段

POST test/_mapping
{
  "properties": {
    "name": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword",
          "ignore_above": 256
        },
        "ik_smart": {
          "type": "text",
          "analyzer": "ik_smart"
        }
      }
    }
  }
}

插入一条新的数据

PUT test/_doc/5
{
  "name": "王五",
  "age": 35
}

查询 李四,王五,发现查不到李四



GET test/_search
{
  "query": {
    "match": {
      "name.ik_smart": "李四"
    }
  }
}

GET test/_search
{
  "query": {
    "match": {
      "name.ik_smart": "王五"
    }
  }
}

因为李四是 更改mapping之前插入,新增字段没有在老数据上生效,导致查询不出

为了之前的数据也能被查询到,我们通过 _update_by_query

POST test/_update_by_query

结果可以查询
ES: update by query文章来源地址https://www.toymoban.com/news/detail-506433.html

到了这里,关于ES: update by query的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • es通过rest接口_search、_delete_by_query查询与删除数据

    1、rest接口查询数据 rest查询: http://localhost:9200/index_name/_search 查询表达式: postman请求截图: 2、使用Rest接口删除数据 rest删除数据: http://localhost:9200/index_name/_delete_by_query 查询表达式: postman请求截图:

    2024年02月16日
    浏览(45)
  • ES 搜索场景具体应用

            整理了一下ES在具体搜索场景中的各种应用。         真实业务场景中,项目初期,PM整理出来的搜索需求对后端和算法都是小case,但是一旦到了红海阶段,各种复杂需求就出来了。         此次主要是对之前工作中用到的场景做一个整理。         在ES的语境下,

    2024年02月08日
    浏览(36)
  • LeetCode 2569. Handling Sum Queries After Update【数组,线段树】困难

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月15日
    浏览(35)
  • 【ES】笔记-箭头函数的实践于应用场景

    需求-1 点击 div 2s后颜色变成[粉色] 从数组中返回偶数的元素 html 绑定事件 原因分析:this指向window,而window身上并没有style属性 解决方法: 让this指向ad元素 保存外层作用域的this 使用箭头函数;指向声明时候的this对象就是ad onst arr=[1,6,9,10,100,25]; 利用数组filter函数处理。 改成

    2024年02月11日
    浏览(31)
  • lucene、solr、es的区别以及应用场景

    Lucene、Solr 和 Elasticsearch(ES) 都是基于 Lucene 引擎的搜索引擎,它们之间有相似之处,但也有一些不同之处。 Lucene 是一个低级别的搜索引擎库,它提供了一种用于创建和维护全文索引的 API,以及一些搜索和排序算法。Lucene 主要用于构建自定义搜索引擎,例如在 Java 应用程序中

    2024年02月15日
    浏览(36)
  • 谷粒商城项目|es的应用场景及常见问题

    es是什么 es多被用于搜索聚合分析引擎 是分布式的可以高性能查询的引擎 es应用场景 为什么不用MYSQL而用es es将数据存在内存中且可以分布式的存储数据 商品上架 商品在es中的保存 1.在es中建立索引 spu sku spu sku保存在一起防止分布查询 为了防止对象数组扁平化,商品属性字段

    2024年01月17日
    浏览(58)
  • ES6 reduce方法:示例与详解、应用场景

    还是大剑师兰特 :曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。 No. 内容链接 1 Openlayers 【入门教

    2024年04月13日
    浏览(37)
  • MongoDB:MySQL,Redis,ES,MongoDB的应用场景

    简单明了说明MySQL,ES,MongoDB的各自特点,应用场景,以及MongoDB如何使用的第一章节.         SQL被称为结构化查询语言.是传统意义上的数据库,数据之间存在很明确的关联关系,例如主外键关联,这种结构可以确保数据的完整性(数据没有缺失并且正确).但是正因为这种严密的结构

    2024年02月12日
    浏览(39)
  • ElasticSearch应用场景以及技术选型[ES系列] - 第496篇

    历史文章( 文章 累计490+) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 Mybatis-Plus自动填充功能配置和使用 [

    2024年02月04日
    浏览(48)
  • elasticsearch文档Delete By Query API(一)

    如果只是想计算版本冲突而不是让它们中止,那么可以设置在URL中添加conflicts=proceed参数,或者在请求体中设置  \\\"conflicts\\\":\\\"proceed\\\" 。 开发者可以将  _delete_by_query 限制为单一类型,例如如下请求,将会从  twitter 索引中删除  _doc 类型的文档: curl -X POST “localhost:9200/twitter/_

    2024年03月27日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包