elasticSearch的索引库文档的增删改查

news2024/11/16 7:54:49

我们都知道,elasticsearch在进行搜索引擎的工作时,是会先把数据库中的信息存储一份到elasticsearch中,再去分词查询等之后的工作的。

elasticsearch中的文档数据会被序列化为json格式后存储在elasticsearch中。elasticsearch会对存储的数据进行分类管理,相同类型的放在一起。

索引:相同类型的文档的集合(即同一类型数据的集合)叫索引(这个不是MySQL中的那个索引),为了区分开,我们通常把这的索引叫索引库(对应的mysql数据库中的table表)。

映射:索引中文档的字段约束信息,类似表的结构约束。常见的mapping映射有:

type: 字段数据类型,常见类型有:1、字符串:text(可分词)、keyword(精确值,不可分词,比如品牌名)  ;  2、数值: long、integer、short、byte、double、float ;3、布尔:boolean; 4、日期: date; 5、对象: object

index:是否创建索引,默认是true。看看在实际搜索时你会不会根据这个字段进行筛选查询,不会用到,就false。

analyser:分词器,只有text类型才会分词

properties :该字段的子字段,只有object才会用到。

#创建索引库并设置mapping映射
PUT /heima
{
  "mappings": {
    "properties": {
      "info":{
        "type": "text"
        , "analyzer": "ik_smart"
      },
      "age":{
        "type": "byte"
      },
      "email":{
        "type": "keyword"
        , "index": false
       },
       "name":{
         "type": "object", 
         "properties": {
           "firstName": {
             "type": "keyword"
           },
           "lastName": {
             "type": "keyword"
           }
         }
       }
    }
  }
}

#查询索引库
GET /heima

#删除索引库
DELETE /heima

 这代码意思是我们创建的索引库 名叫 /heima  其中属性用info 、age、email、name(子属性 firstName、lastName);

修该操作有点特殊,不支持对索引库中已有的字段进行修改,但可以新增没有的字段

#修改索引库,不支持对已有的索引库做出修改,但可以添加新的字段
PUT /heima/_mapping
{
  "properties":{
    "info":{
      "type":"keyword"
    }
  }
}

下面是对索引库中文档的增删改查:

#新增文档 post /索引库名/_doc/文档id
POST /heima/_doc/1
{
  "age":21,
  "email":"****1",
  "info":"黑马程序员Java学习",
  "name":{
    "firstName":"yun",
    "lastName":"zhao"
  }
}

#查询文档
GET /heima/_doc/1


#删除文档
DELETE /heima/_doc/1

 同样,修改操作有点特殊,有俩种方式:

#方法一:全量修改,会删除旧文档,添加新文档,文档内所有字段都需要写一遍
#如果修改的文档id对应文档不存在,修改操作就会变为新增操作
PUT /heima/_doc/1
{
  "age":21,
  "email":"****2",
  "info":"黑马程序员Java学习",
  "name":{
    "firstName":"yun",
    "lastName":"zhao"
  }
}
#方法二:增量修改,修改指定字段
POST /heima/_update/1
{
  "doc": {
    "email":"*****3"
  }
}

 批量处理:同时新增、删除、更新多个数据:

#批量处理  index为新增,注意!新增的各个字段必须写在同一行中。
POST /_bulk
{"index":{"_index":"heima","_id":3}}
{"info":"黑马程序员Java学习3","age":23,"email":"****3","name":{"firstName":"wu","lastName":"wang"}}
{"index":{"_index":"heima","_id":4}}
{"info":"黑马程序员Java学习4","age":24,"email":"****4","name":{"firstName":"liu","lastName":"liu"}}

#批量删除  delete为删除
POST /_bulk
{"delete":{"_index":"heima","_id":3}}
{"delete":{"_index":"heima","_id":4}}

#批量更新  update 。 doc中写要更新的字段
POST /_bulk
{"update":{"_id":3,"_index":"heima"}}
{"doc":{"email":"****3.1"}}
{"update":{"_id":4,"_index":"heima"}}
{"doc":{"email":"****4.1"}}

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

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

相关文章

诺基亚老年机突然翻红,为了情怀你会入手吗?

在智能手机功能日益丰富的今天,诺基亚3210的回归,似乎为人们提供了一种逃离现代科技束缚的选项。这款曾经的经典手机,以其复古的外观和简单的功能,吸引了一批怀旧用户的追捧。然而,它真的能够满足现代人的需求吗&#…

探讨大数据在视频汇聚平台LntonCVS国标GB28181协议中的应用

随着摄像头和视频监控系统的普及和数字化程度的提高,视频监控系统产生的数据量急剧增加。大数据技术因其优秀的数据管理、分析和利用能力,成为提升视频监控系统效能和价值的重要工具。 大数据技术可以将视频监控数据与其他数据源进行融合分析&#xff0c…

【Golang】slice切片

slice Go语言的切片是对数组的抽象。 数组的使用 package mainimport ("fmt" )// 传递固定长度的数组还是值传递的方式 func printArray(myArray [5]int) {for index, value : range myArray {fmt.Println("index:", index, "value:", value)…

【深度学习】图形模型基础(5):线性回归模型第五部分:多变量线性回归模型

1.引言 当我们从基础的线性模型 y a b x error y a bx \text{error} yabxerror 转向更复杂的模型 y β 0 β 1 x 1 β 2 x 2 … error y \beta_0 \beta_1 x_1 \beta_2 x_2 \ldots \text{error} yβ0​β1​x1​β2​x2​…error 时,我们面临了诸多…

DNS知识点

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ​ 目录 一、DNS概念 二hosts 文件 DNS优缺点 三客户端域名解析顺序(优先级) 四原…

JVM:类的生命周期

文章目录 一、介绍二、加载阶段三、连接阶段四、初始化阶段 一、介绍 类的生命周期描述了一个类加载、连接(验证、准备和解析)、初始化、使用、卸载的整个过程。 加载(Loading)阶段第一步是类加载器根据类的权限定名通过不同的渠…

函数调用的堆栈过程

初始栈空间如下(可以拿来训练)&#xff1a; 代码执行之后&#xff1a; 代码&#xff1a; #include <iostream> int sum(int a, int b) { /* 00601800 push ebp 00601801 mov ebp,esp 006018A7 sub esp,4Ch 006018A7 reo stos */int temp …

CentOS7二进制安装和YUM安装mongodb,服务器无法安装5.0以上的 mongodb 数据库报错 Illegal instruction

文章目录 MongoDB 安装二进制安装YUM 安装 Tips:1、MongoDB安装问题2、MongoDB登录3、MongoDB排序时内存大小限制和创建索引4、创建用户5、Java yaml使用密码连接mongodb6、MongoDB增删改查 MongoDB 安装 二进制安装 [rootmysql5-7 mongodb-6.0.4]# cat start.sh #!/bin/bash…

【ASSEHR出版】第四届现代教育技术与社会科学国际学术会议(ICMETSS 2024)

第四届现代教育技术与社会科学国际学术会议&#xff08;ICMETSS 2024&#xff09;将于2024年8月23-25日在马来西亚 吉隆坡举行。 会议旨在为从事教育相关领域的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术&#xff0c;了解学术发展趋势&#xff0c;拓…

JNPF-V5.x重磅来袭!

背景概述 行业背景 低代码⾏业经过⼏年的发展、沉淀&#xff0c;其产品的能⼒定位已逐渐清晰&#xff0c;低代码的核⼼价值是提升专业开发 ⼈员的效率&#xff0c;更便捷的调⽤多种能⼒的接⼝&#xff0c;适合IT能⼒强、IT背景复杂的企业使⽤。同时在客户认知层 ⾯上也以⽇…

2023.2版IDEA复制配置修改端口增加一个当前运行服务的操作流程

文章目录 前言操作流程截图 前言 在微服务技术学习中很多学习场景会使用到运行多个服务节点进行调试&#xff0c;想要去模拟集群部署&#xff0c;就需要去复制配置&#xff0c;本文讲解一下如何复制&#xff0c;以及修改端口号。 操作流程截图

【吊打面试官系列-MyBatis面试题】使用 MyBatis 的 mapper 接口调用时有哪些要求?

大家好&#xff0c;我是锋哥。今天分享关于 【使用 MyBatis 的 mapper 接口调用时有哪些要求&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 使用 MyBatis 的 mapper 接口调用时有哪些要求&#xff1f; 1、Mapper 接口方法名和 mapper.xml 中定义的每个 sql 的…

【Swiper】轮播图 笔记

文章目录 场景代码 场景 官网&#xff1a;Swiper - 最现代的移动触控滑块 - Swiper 中文 最近用svelte写轮播图&#xff0c;用了Swiper组件。需求是&#xff1a;一共三张图&#xff0c;来回切&#xff0c;保持循环&#xff08;1&#xff0c;2&#xff0c;3->2&#xff0c;…

2024年06月CCF-GESP编程能力等级认证Python编程四级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 一、单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证…

盛水对多容器、判断子序列-双指针题型

11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; 双指针两头向里移动&#xff0c;短的先动&#xff1b; class Solution { public:int maxArea(vector<int>& height) {int l 0, r height.size() - 1;int ans 0;while(l < r){int area min(height…

阿里云登陆Centos7

用自己电脑登陆Centos7太麻烦了&#xff0c;还要自己弄个虚拟机&#xff0c;一个电脑里面既有WIN又有LINUX&#xff0c;索性直接买个阿里云服务器&#xff0c;来学习Centos7。 购买 我是新用户&#xff0c;可以试用3个月&#xff0c;先用个3个月再说哈哈哈。 一系列操作之后…

(硬件05)电流检测中运放的“虚短”与“虚断”

本文目录 本篇前言知识点讲解软件仿真 本篇前言 运放&#xff0c;全称是运算放大器&#xff0c;一般的用法是用来发大电信号的&#xff0c;本篇讲解到的就是通过运算放大器将大电流流过采样电阻后的电压进行放大后输出给单片机的ADC&#xff0c;单片机根据ADC的值&#xff08…

无人机之穿越机操作技巧篇

一、低高度练习 选择低高度进行飞行练习&#xff0c;这样即使操作失误&#xff0c;也能减少飞行器受损的风险。 二、平稳起降 在起飞和降落时&#xff0c;要控制好飞行器的垂直状态&#xff0c;避免因为操作不当导致飞行器倾斜甚至坠机。 三、画圆飞行 通过水平面上的圆形…

提高LabVIEW软件通用性的方法

提高LabVIEW软件通用性的方法 在使用LabVIEW开发软件时&#xff0c;提高软件的通用性非常重要。通用性意味着软件可以在不同的应用场景中使用&#xff0c;具备高度的适应性和灵活性&#xff0c;从而提高软件的价值和用户满意度。以下从多个角度详细探讨如何提高LabVIEW软件的通…

第16周:LSTM-火灾温度预测

目录 前言 一、LSTM简介 1.1 LSTM的本质 1.2 LSTM的提出 1.3 LSTM的原理 1.3.1 RNN原理介绍 1.3.2 LSTM原理介绍 二、前期准备 2.1 导入库、设置GPU 2.2 导入数据 2.3 构建数据集 2.3.1 数据集预处理 2.3.2 设置X&#xff0c;y 2.3.3 缺失值检测 2.3.4 划分数据…