当前位置: 首页 > news >正文

elasticsearch-如何给文档新增/更新的字段

文章目录

  • 前言
    • elasticsearch-如何给文档新增/更新的字段
      • 1. 如何给某些文档新增/更新的字段
      • 2. 给所有文档添加/更新一个新的字段
      • 3. 测试

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


elasticsearch-如何给文档新增/更新的字段

1. 如何给某些文档新增/更新的字段

POST /blog_new/_update_by_query
{"script": {"source": "ctx._source.double_yzy_flag = 'Y'","lang": "painless"},"query": {"bool": {"filter": [{"term": {"author": {"value": "yangzhenyu","boost": 1.0}}}],"adjust_pure_negative": true,"boost": "1.0"}}
}

在这里插入图片描述
ctx._source:这是 Elasticsearch 中用于修改文档字段的方式。通过 ctx._source 可以访问和修改文档中的字段。
效果:执行语句时,如果文档中没有 double_yzy_flag 字段,它会自动新增并赋值为 ‘Y’。如果字段已经存在,则会更新其值为 ‘Y’

注意的是

  1. 当你添加一个新的字段(没有预定义映射)时,Elasticsearch 会根据字段的内容推断类型。对于字符串值(如 ‘Y’),Elasticsearch 默认将其类型设置为 keyword,因为 keyword 类型是用于存储精确值、不可分词的字符串数据。keyword 类型适合用于标识符、标签、分类、状态等字段。
  2. keyword 类型的特点:
    • 不分词:keyword 类型字段会原样存储文本数据,不会对其进行分词(如 analyze)。
    • 适合精确匹配:keyword 类型适用于精确匹配查询,如 term 查询,因为它存储的内容没有经过分词,查询时直接使用原值进行匹配。

2. 给所有文档添加/更新一个新的字段

POST /blog_new/_update_by_query
{"script": {"source": "ctx._source.double_xxx = 'N'","lang": "painless"},"query": {"match_all": {}}
}

在这里插入图片描述

3. 测试

1、查询该索引文档总数

GET /blog_new/_search
{"size": 0
}

在这里插入图片描述
总数为:2433
2、查询double_yzy_flag=Y的数量
在这里插入图片描述
这是上次执行更新新增语句update的数量,总共有605。
下边是查询double_yzy_flag=Y的数量:

GET /blog_new/_search
{"size": 0,"query": {"bool": {"filter": [{"term": {"double_yzy_flag.keyword": {"value": "Y","boost": 1.0}}}],"adjust_pure_negative": true,"boost": "1.0"}},"sort": [{"publish_date": {"order": "asc"}}]
}

在这里插入图片描述
下边是查询非double_yzy_flag=Y的数量:
在这里插入图片描述
预测数量应该是总数-double_yzy_flag=Y的数量=2433 - 605 = 1828

GET /blog_new/_search
{"size": 0,"query": {"bool": {"must_not": [{"match_phrase": {"double_yzy_flag.keyword": {"query": "Y","slop": 0,"zero_terms_query": "NONE","boost": 1}}}],"adjust_pure_negative": true,"boost": "1.0"}},"sort": [{"publish_date": {"order": "asc"}}]
}

在这里插入图片描述
测试正确!!

http://www.lryc.cn/news/497319.html

相关文章:

  • https/http访问接口工具类,附带ssl忽略证书验证,以及head头部的添加-java版
  • node.js基础学习-express框架-静态资源中间件express.static(十一)
  • Python语法基础---正则表达式
  • Uniapp 微信小程序分享 - 自定义绘制分享图片
  • 鸿蒙技术分享:Navigation页面容器封装-鸿蒙@fw/router框架源码解析(三)
  • 三步入门Log4J 的使用
  • VBA中类的解读及应用第十八讲:利用类方法,判断任意单元格类型
  • 查询品牌涉及两张表(brand、brand_admin_mapping)
  • Eureka和Zookeeper、Nacos的区别
  • 微信小程序怎么实现非tabbar页面显示tabbar,自定义组件实现
  • SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)
  • 多种平台上安装部署调试Open5GS(四)
  • 单片机的基本构成与工作原理
  • opencv常用图像处理操作
  • Svn如何切换删除账号
  • 使用PaddleOCR遇到的问题Bug
  • 了解Xcode在iOS开发中的作用和功能有哪些
  • 《船舶物资与市场》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 商汤完成组织架构调整,改革完成的商汤未来何在?
  • MyBatis异常体系中ErrorContext和ExceptionFactory原理分析
  • WHLUG丨deepin、华中科技大学开放原子开源俱乐部、 RustSBI 和清华大学开源操作系统训练营共话开源新生代成长之路
  • 通过HTML Canvas 在图片上绘制文字
  • C# 冒泡的算法
  • 大数据项目-Django基于聚类算法实现的房屋售房数据分析及可视化系统
  • AWS创建ec2实例并连接成功
  • TypeScript 开始学习 -接触的新东西
  • 非对称任意进制转换器(安卓)
  • 【优选算法篇】寻找隐藏的宝藏:用二分查找打开算法世界的大门(上篇)
  • 基于Vue实现的移动端手机商城项目 电商购物网站 成品源码
  • C语言:数组