SpringCloud系列(十四)[分布式搜索引擎篇] - 索引库及文档的增删改查操作

news2024/9/21 3:23:52

本文主要介绍一下索引库及文档的一些增删改查操作, 以下都是一些常用的操作, 无需死记硬背, 只需要用到的时候常翻阅即可;
  当然学习索引库和文档的一些基本操作还是要先在虚拟机启动一下 elasticsearch 及 kibana, 启动成功后输入 172.16.xx.xxx:5601 后出现以下界面即启动成功:
在这里插入图片描述

索引库的操作及文档的操作

  • ⓵ 索引库操作
    • 1.1 创建索引库
    • 1.2 查询索引库
    • 1.3 修改索引库
    • 1.4 删除索引库
    • 1.5 总结
  • ⓶ 文档操作
    • 2.1 新增文档
    • 2.2 查询文档
    • 2.3 删除文档
    • 2.4 修改文档
      • 2.4.1 全量修改
      • 2.4.2 增量修改
    • 2.5 总结

⓵ 索引库操作

  学习索引库的一些基本操作, 首先要明白 mapping 这个映射属性的作用, mapping 是对索引库中文档的约束, 常见的约束类型有以下多种:

  • type: 字段数据类型, 如 text (文本) / keyword (精确值, 如自己的 ip 地址); 常见的数值类型如 long / integer / short / double 等; 还有布尔类型 / 日期及 object 对象;
  • index: 是否创建索引, 默认值为 true;
  • analyzer: 使用哪种分词器, 是 ik_smart 还是 ik_max_word;
  • properties: 该字段的子字段.

1.1 创建索引库

接下来将演示索引库的增删改查操作; 首先创建索引库和映射, 基本语法如下:

PUT /fug
{
  "mappings": {
    "properties": {
      "info": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "email": {
        "type": "keyword",
        "index": false
      },
      "name": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "keyword"
          },
          "lastName": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

解读:

  • 上面就是创建了一个名为 fug 的索引库, 请求方式是 PUT, 请求路径就是 /fug, 当然这里可以自己定义, 请求参数就是 mapping 映射;
  • properties 里面就是多个子字段, 包括 info / email / name 这几个子字段;
  • info 字段使用了 analyzer 分词器, email 字段 index 为 false, 也就是不创建索引;
  • 在 name 字段里面还包括两个子字段, 因此 name 字段的类型为 object 对象类型.

1.2 查询索引库

  这里还是以代码的形式演示, 然后进行解读; 查询索引库的代码比较简单, GET /fug 即可; 执行完结果如下:
在这里插入图片描述

1.3 修改索引库

  这里需要注意, 关于正向索引和倒排索引的概念上一篇文章已经介绍, 🐝点击这里直达; 虽然倒排索引的结构不是很复杂, 但是数据结构只要是创建完成了, 就不要再进行改变了, 如你改变了分词器, 那么就需要重新创建倒排索引, 因此索引库一旦创建, 就无法改变 mapping; 那么如果迫不得已想要改变该怎么办呢???
  虽然不能改变已有的 mapping 中的字段, 但是可以添加新的字段到 mapping 中, 这样也不会出现倒排索引改变引起的后果, 因此修改索引库操作其实就是往 mapping 中添加新的字段;

PUT /fug/_mapping
{
  "properties": {
    "age": {
      "type":"integer"
    }
  }
}

语法说明: PUT /索引库名称/_mapping.

POST /fug/_doc/1001
{
  "info": "今天是个好日子,早起的虫儿有鸟吃",
  "email": "1327999999@q.com",
  "name": {
    "firstName": "想",
    "lastName": "理"
  }
}

在这里插入图片描述
这时候如果进行查询操作, 则发下已经存在了 age 这个字段;
在这里插入图片描述

1.4 删除索引库

删除索引库的操作也比较简单, DELETE /fug, 这里不再演示.

1.5 总结

  • 创建索引库: PUT /索引库名;
  • 查询索引库: GET /索引库名;
  • 修改索引库 (添加字段): PUT /索引库名/_mapping;
  • 删除索引库: DELETE /索引库名.

⓶ 文档操作

  索引库已经创建完成, 接下来往里面插入数据;

2.1 新增文档

基本语法: POST /索引库名/_doc/文档id;
在这里插入图片描述

2.2 查询文档

基本语法: GET /索引库名/_doc/文档id;
在这里插入图片描述

2.3 删除文档

基本语法: DELETE /索引库名/_doc/文档id;
在这里插入图片描述

2.4 修改文档

修改文档的方式有两种;

  • 全量修改: 直接覆盖原来的文档; 也就是说根据指定的文档 id 删除文档, 然后再新增一个相同文档 id 的文档; 当然根据文档 id 删除时, 如果不存在, 也是会执行新增操作, 这也就意味着由修改文档变成了新增文档操作了;
  • 增量修改: 修改文档中的部分字段; 也就是说只修改指定文档 id 匹配的文档中的部分字段.

2.4.1 全量修改

基本语法: PUT /索引库名/_doc/文档 id;

PUT /fug/_doc/1
{
  "info": "今天是 2023 年 3 月 2 日",
  "email": "1327999999@q.com",
  "name": {
    "firstName": "想",
    "lastName": "理"
  }
}

在这里插入图片描述
在这里插入图片描述

2.4.2 增量修改

基本语法: POST /索引库名/_update/文档 id;

POST /fug/_update/1
{
  "doc": {
    "email": "10101010101@qq.com"
  }
}

在这里插入图片描述
在这里插入图片描述

2.5 总结

  • 创建文档: POST /索引库名/_doc/文档id;
  • 查询文档: GET /索引库名/_doc/文档id;
  • 删除文档: DELETE /索引库名/_doc/文档id;
  • 修改文档
    • 全量修改: PUT /索引库名/_doc/文档id;
    • 增量修改: POST /索引库名/_update/文档id.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383984.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信创-东方通和达梦适配

1 TLQ8.0 简单的例子,发送MQ,然后收消息连接是一样的,要不断去拉取数据消费的public static void main(String[] args) {//发送消息的目的队列String queName "lq";//连接工厂类QueueConnectionFactory queueConnectionFactory n…

制造业仓库很乱,该如何有效的管理呢?

首先来统计一下制造业仓库很乱的问题: 1.管理多仓库/多店铺,库存不清2.库存控制不合理,出现滞销与脱销的情况3.库存盘点时间长,数据不准确在传统管理模式下,一些中小型制造业的仓库,物料摆放位置、明细等都…

TOOLS_Seaborn相关性可视化分析示例

TOOLS_Seaborn相关性可视化分析示例 相关性应用场景 如要回答 推测 网站留存、观看时长、收藏次数、转发次数、关注数之间是否存在相关性,以及相关性有多大的问题; 对于更有关注的留存,可以尝试分析一个与其相关性比较大的因素&#xff0c…

【大数据专题】大数据理论基础01之分布式CPA原理深入理解

分布式CAP定理 CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中…

编写一个Vue插件,上传NPM官网开源使用

插件开发及上传NPM流程 完成组件封装、组件完成统一封装成插件插件入口文件配置src/main.js 中引入口文件、安装插件配置 package.json 文件npm run lib 打包umd.min.js 配置到 package.json登录 NPM 上传插件npm i 安装引入使用 一、编写好组件 二、插件入口文件配置 plugins/…

更安全更稳定,阿里云斩获多项云系统稳定安全运行优秀案例

近日,阿里云凭借在稳定性领域的全栈投入,获评中国信通院混沌工程实验室 2022 年度杰出贡献企业,并斩获“云系统稳定安全运行优秀案例”活动中多领域优秀案例。阿里云持续推动企业 IT 系统建设,保障千行百业安全稳定的实现数字化转…

普通人如何用AI帮你干活——娱乐1

案例描述:一天朋友突然发信息跟我说:看你朋友全最近总在显摆AI作画,看起来好像有点牛逼;我家小朋友最近在参加一个国家绘画比赛,能不能让你的AI帮忙画几张有趣的有创意的画。给小朋友做灵感启发,小朋友可以…

如何处理负面评论?利用负面评论发挥优势

每家公司都应该做的一件事:回复评论! 37%的买家积极考虑对评论的回应,以评估和对品牌的看法。所以不要忘记回复评论! 如何处理负面评论 如果您的公司正在经历大量负面评论,请了解您的产品团队如何利用它们来发挥自己的…

CSS隐藏元素、BFC、元素居中、布局

1、css中有哪些方式可以隐藏页面元素?区别是什么?1.1 display:none元素在页面上将彻底消失,元素本身占有的空间会被其他元素占有,导致浏览器的重排和重绘。特点:元素不可见,不占据空间,不会触发…

面试阿里自动化测试工程师被狂虐,回家猛补3个月,成功上岸字节

前言 大家好,我是小祖,个人背景:985中下游,无大厂实习(小厂打杂),无竞赛,无相关论文。 毕业几年,表面上用过很多技术,但都没能深入学习,一年的工…

python 支付宝营销活动现金红包开发接入流程-含接口调用加签

1 创建网页/移动应用 2 配置接口加签方式 涉及到金额的需要上传证书,在上传页面有教程, 在支付宝开放平台秘钥工具中生成CSR证书,会自动保存应用公钥和私钥到电脑上,调用支付宝接口需要应用私钥进行加签 上传完CSR证书后会有三个…

互联网衰退期,测试工程师35岁的路该怎么走...

国内的互联网行业发展较快,所以造成了技术研发类员工工作强度比较大,同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高,超过35岁的基层研发类员工,往往因为家庭原因、身体原因,比较难以跟得上工作…

DSP_TMS320F28335_PIE学习笔记

前言 本文重点探讨DSP PIE模块的学习笔记,由于学这部内容的时候,是用28335学的,所以标题是用的28335,但其实28377D和28335的PIE使用基本上是一样的,也是可以借鉴的。 正文 原理 讲点原理,PIE&#xff0…

linux minio更改密码MINIO_ACCESS_KEY报错

minio版本RELEASE.2020-11-13T20-10-18Z启动文件配置如下cat run.sh#!/bin/bashexport MINIO_ACCESS_KEYminioexport MINIO_SECRET_KEYfasffnohup /opt/minio/minio.RELEASE.2020-11-13T20-10-18Z server http://192.168.100.x/data/minio_data http://192.168.100.x/data/mini…

Docker中对已存在运行的容器修改端口映射

一、初次创建容器,指定宿主机和容器端口的映射,如下示例: docker run -itd -p 11935:1935 -p 11985:1985 -p 18080:8080 -p 20903:20903 -p 18888:8888 \ --restartalways \ -v /srv/srs3/conf/:/usr/local/srs/conf/ \ -v /srv/srs3/objs/:…

Android总结汇总

一、APP1、混合开发项目AHP地址:https://github.com/Witnin/AHP简介:KotlinJava二、路由框架1、集成ARouter导航框架官网地址(停止维护):https://github.com/alibaba/ARouter/blob/master/README_CN.mdjadepeakpoet&am…

Leedcode 1011. 在 D 天内送达包裹的能力

题目 传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 day…

利用DSCync进行域内权限维持

一个域环境可以拥有多台域控制器,每台域控制器各自存储着一份所在域的活动目录的可写副本,对目录的任何修改都可以从源域控制器同步到本域、域树或域林中的其他域控制器上。当一个域控想从另一个域控获取域数据更新时,客户端域控会向服务端域…

【Echarts图例点击事件】自定义Echarts图例legend点击事件(已解决)

目录先睹为快(效果)1、实现Echarts多条曲线2、点击echarts触发接口请求2.1 先默认隐藏部分数据2.2 自定义legend图例点击事件3、源码下载地址(解压即用)**【写在前面】**这下我又不得不说了,还是客户现场使用时想查询一…

宽度学习系统BLS推广到在线学习的论文阅读记录

BELS: A BROAD ENSEMBLE LEARNING SYSTEM FOR DATA STREAM CLASSIFICATION 摘要:这篇文章主要是将BLS推广到适用于在线学习的邻域,提出了其如何进行适合在线学习的增量更新,以及面对概念漂移的适应 所提出的算法BELS 稀疏特征映射的更新 …