【ElasticSearch 8 边学边教】03. ElasticSearch 8 的数据基本操作

本文介绍了ElasticSearch 8的基本概念,包括索引、文档、映射类型和字段,以及如何使用REST API进行数据的增删查操作。重点讲解了全文搜索的原理和字段类型对数据存储的影响。此外,还概述了REST API的不同方法,如PUT、POST、GET和DELETE,用于管理索引和文档。
摘要由CSDN通过智能技术生成


前言

第二篇记录了Kibana的安装,这一篇就主要记录下在Kibana下对数据的基本操作,当然在讲之前,我得简单介绍一下ElasticSearch的基本概念以及它的数据结构,然后再讲基本操作。
(由于最近在忙着刷Leetcode,同时这一篇涉及的内容比较多,我得专门专门找本书去看,所以更新得比较慢)


一、ElasticSearch 基本概念

1.1 定义

官网对ElasticSearch的定义是:Elasticsearch is a highly scalable open-source full-text search and analytics engine。直译过来就是,高度可伸缩开源全文搜索分析引擎。这个项目是基于 Apache Lucene 做二次封装,降低了开发以及复杂度,并且性能很好,所以用的人多。

同时它是归类到NoSQL,这里要强调下它的几个概念,包括索引,映射类型(7.0以后只有_doc),文档,字段。如果大家有了解过都知道,跟关系型数据库的结构类比的话,如下:
索引 = 库
映射类型 = 表
文档 = 数据行
字段 = 表中的列(也就是字段,一样的)

1.2 索引和全文搜索

全文搜索,白话一点,就是我存了一大串文本,但我还是能通过文本中的一个个词,把这个文本给查出来。
怎么实现?用倒排索引,基本结构就像下面那样,怎么查一下应该能脑补出来。
在这里插入图片描述关键字怎么来?首先 type=text 的字段,默认都会分词(可以调)。通过分词,这个东西跟分词器有关,可以在建索引的时候配置,除了这个东西,建索引还能定义很多东西,先不展开,后面详谈。
什么时候存?在文档添加的时候,不过不会马上建这个索引,ElasticSearch 默认每1s更新1批数据(index.refresh_interval调)。7.0之后还有个套路提高es性能,有个 search.idel.after配置,用来干啥?就是"after"这么多秒才刷新索引(就是如果不查这个数据,就延后刷新,查就更新索引—应该就是懒更新策略?)
原数据咋整?在文档的source字段里面,存完整的字段值。
(以上信息参考《Elastic Stack应用宝典》)

1.3 文档

文档基本上没啥好说的,就是我们平时的数据对象,只不过es用json文档的形式存起来而已。

1.4 映射类型

这个东西 6.0 有,在定义索引的时候用

{
   
	"mapping":{
   
		"typeA":{
   
		
		}, 
		"typeB":{
   
		
		}
	}
}

这样的格式定义,6.0以后就无的咯。想这么操作,只能再建几个索引。

1.5 字段

字段还是跟平时学的一个样,字段名 + 类型定义一个字段,当然还有很多关键字,先不展开,不过下面有些东西可以留意下。
刚说的字段类型等于text的,会分词来做索引。那么问题来了:

  1. 原始值在哪里?
    _source字段
  2. 文档值是啥?
    就是除text类型之外,默认都会开启文档值这个功能,因为非text类型的字段,都算是结构化数据,所以可以用它来进行数据的结构化存储(通过 “doc_values”:false 关闭),文档值的数据结构是存在硬盘中的
  3. 文档值数据有啥用?
    这些结构化的文档值,可以做聚类,排序操作,而非文档值的没法整这东西
  4. fielddata又是啥?
    针对 text 类型的参数,开启之后会在内存中构建数据结构(所以可能会有OOM),比较耗性能,没啥特殊需求不需要整这东西。
  5. 什么是元字段?
    跟 “元” 相关的,英文都是 meta,不用问都是系统自带的字段,主要用来标识、索引、统计、存储字段值。
  6. 字段数据类型有多少?
    字符串、述职、日期、布尔、二进制、范围、数组、对象,支持嵌套、关联、geo数据等,同时一个字段可以支持多个类型
  7. 字段怎么支持多类型?
    用fields参数,定义多个子字段,然后每个子字段不同的数据类型

二、REST API 概述

REST 风格的 API,大致分为一下几类(按照请求头header里面的method区分)

PUT:新增资源(索引,文档)
POST:新增 or 更新资源
GET:查询资源
DELETE:删除资源

在 Kibana 下,只要开发工具->控制台就好了,如下图
在这里插入图片描述

2.1 索引的增删查

不比比,先讲索引名称限制

  1. 只能小写
  2. 不能以 ‘-’, ‘_’, ‘+’ 开头,但是中间可以包含这几个字符,其他特殊字符被禁止(7.0以后不能用冒号)
  3. 长度必须小于255B,那就是255个字节=255个字

2.1.1 最简单的索引操作

四个命令
PUT my_index(创建索引)
GET my_index(获取索引基本信息)
HEAD my_index(检验索引是否存在,存在200,否则404)
DELETE my_index(删除索引)
PUT my_index/_mapping(修改索引mapping属性)

PUT my_index(创建索引)
return
{
   
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "my_index"
}
GET my_index(获取索引基本信息)
return 
{
   
  "my_index" : {
   
    "aliases" : {
    },
    "mappings" : 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值