【ElasticSearch8.X】学习笔记(二)

news2024/11/23 15:25:59

【ElasticSearch8.X】学习笔记

  • 四、基础操作
    • 4.1、索引操作
      • 4.1.1、创建索引
      • 4.1.2、查询指定索引
      • 4.1.3、查询所有索引
      • 4.1.4、 删除索引
    • 4.2、文档操作
      • 4.2.1、创建文档
      • 4.2.2、查询文档
      • 4.2.3、修改文档
      • 4.2.4、删除文档
      • 4.2.5、查询所有文档
    • 4.3、数据搜索
      • 4.3.1、匹配查询文档
      • 4.3.2、匹配查询字段
      • 4.3.3、组合"or"
      • 4.3.4、排序
      • 4.3.5、分页
      • 4.3.6、分组
      • 4.3.7、平均值
      • 4.3.8、求和
      • 4.3.9、TopN
  • 五、 索引模板
    • 5.1、创建模板
    • 5.2、查看模板
    • 5.3、验证模板是否存在
    • 5.4、 创建索引
    • 5.5、删除模板

四、基础操作

在本人blog中ElasticSearch7.x使用postman进行演示过基础操作
因此在ElasticSearch8.x通过Kibana进行演示

4.1、索引操作

4.1.1、创建索引

ES 软件的索引可以类比为 MySQL 中表的概念,创建一个索引,类似于创建一个表
ES 不允许修改索引

# 创建索引
# PUT+索引名
PUT myindex

# 增加索引带自定义配置(JSON格式)
PUT test_index
{
  "aliases": {
    "test1": {}
  }
}

在这里插入图片描述

4.1.2、查询指定索引

根据索引名称查询指定索引,如果查询到,会返回索引的详细信息

# 查询索引
# GET 索引名称
GET myindex

在这里插入图片描述

4.1.3、查询所有索引

这里请求路径中的_cat 表示查看的意思,indices表示索引,所以整体含义就是查看当前 ES 服务器中的所有索引

# 查询索引
GET _cat/indices

在这里插入图片描述

4.1.4、 删除索引

删除指定已存在的索引

# 删除索引
# DELETE+索引名称
DELETE test_index

在这里插入图片描述

4.2、文档操作

4.2.1、创建文档

这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式
如果在创建数据时,指定唯一性标识,那么请求范式 POST,PUT 都可以
如果没有指定数据唯一性标识,只能使用 POST 请求

# 创建文档
# 创建文档
POST myindex/_doc/001
{
  "id" : 1001,
  "name" : "zhangsan",
  "age" : 30
}
POST myindex/_doc/002
{
  "id" : 1002,
  "name" : "lisi",
  "age" : 18
}
POST myindex/_doc/003
{
  "id" : 1004,
  "name" : "wangwu",
  "age" : 30
}
POST myindex/_doc/004
{
  "id" : 1004,
  "name" : "zhaoliu",
  "age" : 35
}

在这里插入图片描述

4.2.2、查询文档

根据唯一性标识可以查询对应的文档

# 查询文档
GET myindex/_doc/001

在这里插入图片描述

4.2.3、修改文档

修改文档本质上和新增文档是一样的,如果存在就修改,如果不存在就新增

# 修改文档
PUT myindex/_doc/001
{
  "age":20
}

在这里插入图片描述

4.2.4、删除文档

删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)

# 删除文档
DELETE myindex/_doc/001

在这里插入图片描述

4.2.5、查询所有文档

# 查询所有文档
GET myindex/_search

在这里插入图片描述

4.3、数据搜索

4.3.1、匹配查询文档

这里的查询表示文档数据中 JSON 对象数据中的 name 属性是lisi

GET myindex/_search
{
  "query": {
  "match": {
    "name": "lisi" #不会查出li si 此时查询关键字是lisi 而li si 的关键词是两个【li】【si】匹配不上
  }
  }
}

GET myindex/_search
{
  "query": {
    "term": {
      "name": {
        "value": "li si" #会查出li si 不会查出lisi  此时关键字是li si
      }
    }
  }
}

在这里插入图片描述

4.3.2、匹配查询字段

默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段,我们可以添加_source 的过滤

GET myindex/_search
{
  "_source": ["name","age"], 
  "query": {
    "term": {
      "name": {
        "value": "lisi"
      }
    }
  }
}

在这里插入图片描述

4.3.3、组合"or"

GET myindex/_search
{
  "_source": ["name","age"], 
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": "lisi"
          }
        },
        {
          "match": {
            "age": 35
          }
        }
      ]
    }
  }
}

在这里插入图片描述

4.3.4、排序

GET myindex/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

在这里插入图片描述

4.3.5、分页

GET myindex/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 2
}

在这里插入图片描述

4.3.6、分组

GET myindex/_search
{
 "aggs": {
   "ageGroup": {
     "terms": {
       "field": "age"
     }
   }
 },
 "size": 0 #只显示分组信息 不显示源信息
}

在这里插入图片描述

4.3.7、平均值

GET myindex/_search
{
 "aggs": {
   "ageAvg": {
     "avg": {
       "field": "age"
     }
   }
 },
 "size": 0
}

在这里插入图片描述

4.3.8、求和

GET myindex/_search
{
 "aggs": {
   "ageGroup": {
     "terms": {
       "field": "age"
     },
     "aggs": {
       "ageSum": {
         "sum": {
           "field": "age"
         }
       }
     }
   }
 },
 "size": 0
}

在这里插入图片描述

4.3.9、TopN

GET myindex/_search
{
 "aggs": {
   "Top3": {
     "top_hits": {
       "sort": [
         {
           "age": {
             "order": "desc"
           }
         }
         ], 
       "size": 3
     }
   }
 },
 "size": 0
}

在这里插入图片描述

五、 索引模板

我们之前对索引进行一些配置信息设置,但是都是在单个索引上进行设置。在实际开发中,我们可能需要创建不止一个索引,但是每个索引或多或少都有一些共性。比如我们在设计关系型数据库时,一般都会为每个表结构设计一些常用的字段,比如:创建时间,更新时间,备注信息等。elasticsearch 在创建索引的时候,就引入了模板的概念,你可以先设置一些通用的模板,在创建索引的时候,elasticsearch 会先根据你创建的模板对索引进行设置。

5.1、创建模板

# 模板名称小写
PUT _template/mytemplate
{
 "index_patterns" : [
 "my*"
 ],
 "settings" : {
 "index" : {
 "number_of_shards" : "1"
 }
 },
 "mappings" : {
 "properties" : {
 "now": {
 "type" : "date",
 "format" : "yyyy/MM/dd"
 }
 }
 }
}

在这里插入图片描述

5.2、查看模板

GET /_template/mytemplate

在这里插入图片描述

5.3、验证模板是否存在

HEAD /_template/mytemplate

在这里插入图片描述

5.4、 创建索引

在创建索引的时候已经定义匹配的索引了 以my开头

PUT mytest

5.5、删除模板

DELETE /_template/mytemplate

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

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

相关文章

LeetCode题目笔记——1487. 保证文件名唯一

文章目录题目描述题目链接题目难度——中等方法一:哈希表代码/Python代码/C总结题目描述 给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同…

JUC并发编程之JMM_synchronized_volatile

目录 JUC并发编程之JMM_synchronized_volatile 什么是JMM模型? JMM和JVM的区别 JMM不同于JVM内存区域模型 主内存 工作内存 Java内存模型与硬件内存架构的关系 JMM存在的必要性 数据同步八大原子操作 同步规则分析 并发编程的可见性,原子性与有序…

【代码编辑器记录一】vue项目中如何实现代码高亮效果+输入

文章目录1-1 代码高亮显示但不可以实现编辑输入vue-highlightjs1-1-1 vue31-1-2 vue21-2 编辑输入高亮代码,进行格式规范code-mirror1-2-1 展示1-2-2 基本配置1-2-3 使用1-1 代码高亮显示但不可以实现编辑输入vue-highlightjs 1-1-1 vue3 安装依赖 npm install -…

企业电子招投标采购系统之系统的首页设计

​​ 功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为…

【知识点】OkHttp 原理 8 连问

前言OkHttp可以说是Android开发中最常见的网络请求框架,OkHttp使用方便,扩展性强,功能强大,OKHttp源码与原理也是面试中的常客但是OKHttp的源码内容比较多,想要学习它的源码往往千头万绪,一时抓不住重点.本文从几个问题…

ThreadLocal 理解及面试

一、ThreadLocal 引用关系 图解关系说明: 每个线程拥有自己的 ThreadLocalMap 属性;ThreadLocalMap 的存储结构为 Entry[] 数组;Entry的Key是ThreadLocal类型且弱引用指向ThreadLocal对象,Value是我们自己定义的泛型值对象&#…

链表的替代品--Vector组件

概述 在之前的一篇文章中,作者写了一个事件组件-- 超精简的订阅发布事件组件–SPEvent,这个组件是采用链表建立所有事件节点的关系的。链表的优缺点: 优点:①链表上的元素在空间存储上内存地址不连续;②在插入和删除操…

注解开发定义bean

注解开发定义bean 使用Component定义bean在核心配置文件中通过组件扫描加载bean,需要指定扫描包的范围 当然也可以使用Component的衍生注解,可以更加形象的表示 纯注解的开发模式 使用java类来代替了以前的 配置文件,在java类中&#xff…

渗透测试之巧用工具搞定sharepoint

背景 在一次实战演练中 goby扫描到一个sharepoint的getshell漏洞 ,漏洞cve编号为CVE-2019-0604,本想着一把梭,直接渗透内网,没想到有waf之类的防护,最后还是想办法解决了。 现在网络上各类漏洞利用工具很多&#xff…

项目中用到的知识点回顾---JWT(JSON Web Token)

1.JWT原理: JWT 的原理是,服务器认证以后,生成一个 JSON 对象,发回给用户,如下; {"姓名": "张三","角色": "管理员","到期时间": "2018年7月1日…

【调试】ftrace(一)基本使用方法

简介 Ftrace是Linux Kernel的官方tracing系统,支持Function trace、静态tracepoint、动态Tracepoint的跟踪,还提供各种Tracer,用于统计最大irq延迟、最大函数调用栈大小、调度事件等。 Ftrace还提供了强大的过滤、快照snapshot、实例&#…

数据结构的一些基础概念

一 基本术语 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处…

【Docker】docker | 迁移docker目录

一、场景说明1、物理机磁盘空间不够用了2、docker的镜像、容器、卷等资料的默认路径为: /var/lib/docker3、增加了数据盘挂在,需要将docker的全部资料更换个目录二、操作确认是否满足切换条件1)服务是否能够暂停,如果可以就OK2&am…

新一代骨传导机皇重磅发布:南卡Neo骨传导运动耳机,性能全面提升

近日,中国最强骨传导品牌NANK南卡发布了最新一代骨传导耳机——南卡Neo骨传导耳机!该款耳机与运动专业性更强的南卡runner Pro4略微不同,其主要定位于轻运动风格,所以这款耳机的音质和佩戴舒适度达到了令人咂舌的地步!…

KDZD地埋电缆故障测试仪

一、产品特性 ★电缆故障测试仪(闪测仪) (1)使用范围广:用于测量各种不同截面、不同介质的各种电力电缆、高频同轴电缆,市话电缆及两根以上均匀铺设的地埋电线等电缆高低阻、短路、开路、断线以及高阻泄漏…

localStorage线上问题的思考

一、背景: localStorage作为HTML5 Web Storage的API之一,使用标准的键值对(Key-Value,简称KV)数据类型主要作用是本地存储。本地存储是指将数据按照键值对的方式保存在客户端计算机中,直到用户或者脚本主动清除数据&a…

公司新招了个人,一副毛头小子的样儿,哪想到是新一代卷王····

内卷,是现在热度非常高的一个词汇,随着热度不断攀升,隐隐到了“万物皆可卷”的程度。 在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是…

如何对web系统开展无障碍测试

Accessibility test(无障碍测试)是一种测试方法,旨在评估软件、网站或其他数字产品的可访问性,以确保它们能够被身体残障或其他特殊需求的用户使用。这些测试通常包括使用辅助技术,如屏幕阅读器和放大器,以…

mysql集群简介

集群的好处 高可用性:故障检测及迁移,多节点备份。 可伸缩性:新增数据库节点便利,方便扩容。 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力。 集群要考虑的风险 网络分裂:群集还…

学生专用台灯怎么选?2023最新对学生眼睛好的台灯盘点

学生是现在用台灯非常多的群体,因为学习压力大,免不了晚上加班,但是也要注意使用保护眼睛的台灯,否则容易出现近视。 那么学生专用台灯该怎么选呢?选择学生专用台灯需要考虑以下几个方面: Ⅰ、亮度&#x…