ES索引:索引管理

索引管理

再讲索引(Index)前,我们先对照下 ElasticSearch Vs 关系型数据库:

请在此添加图片描述

PUT /customer/_doc/1
{
  "name": "DLBOY"
}

系统默认是自动创建索引的

如果我们需要对这个建立索引的过程做更多的控制:

比如想要确保这个索引有数量适中的主分片,并且在我们索引任何数据之前,分析器和映射已经被建立好。

那么我们需要做两件事:第一个禁止自动创建索引,第二个是手动创建索引

禁止自动创建索引

可以通过在 config/elasticsearch.yml 的每个节点下添加下面的配置

action.auto_create_index: false

创建索引

创建一个名称为test-index-users的索引(Index)

PUT /test-index-users

请在此添加图片描述

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "test-index-users"
}

这是一个Elasticsearch索引创建的响应示例,包含了以下关键信息:

  • “acknowledged”: 这是一个布尔值,表示索引的创建是否得到了确认。如果为true,则表示索引成功创建。
  • “shards_acknowledged”: 这也是一个布尔值,表示索引中的分片是否得到了确认。如果为true,则表示所有分片成功创建。
  • “index”: 这是新创建索引的名称,名称为"test-index-users"。

这个响应表明,索引"test-index-users"已成功创建,并且所有分片也得到了确认。索引创建成功后,你可以向该索引中添加文档,执行搜索操作以及执行其他与索引相关的操作。索引是Elasticsearch中组织和存储数据的重要结构。

我们创建一个user 索引test-index-users,其中包含三个属性:name,age, remarks; 存储在一个分片一个副本上。

手动创建带有mapping关系的索引

创建索引test-index-users,其中包含三个属性:name,age, remarks; 存储在一个分片一个副本上。

## 先删除掉创建过的索引
DELETE /test-index-users

PUT /test-index-users 
{
    "settings":{
        "number_of_shards":1,
        "number_of_replicas":1
    },
    "mappings":{
        "properties":{
            "name":{
                "type":"text",
                "fields":{
                    "keyword":{
                        "type":"keyword",
                        "ignore_above":256
                    }
                }
            },
            "age":{
                "type":"long"
            },
            "remarks":{
                "type":"text"
            }
        }
    }
}

请在此添加图片描述

Elasticsearch索引的设置(settings)和映射(mappings)的示例。让我来解释其中的各个部分:

“settings”: 这是索引的设置部分,包含了索引的全局设置。
“number_of_shards”: 这是指定索引的主分片数量。在这个示例中,设置为1,表示索引有一个主分片。主分片用于存储索引的主要数据。
“number_of_replicas”: 这是指定索引的副本数量。在这个示例中,设置为1,表示为索引创建一个副本。副本用于提高数据的冗余性和可用性。
“mappings”: 这是索引的映射部分,定义了索引中文档的结构。
“properties”: 这是文档字段的定义部分。
“name”: 这是一个名为"name"的字段,具有以下属性:
“type”: 这是字段的数据类型,这里是"text"。text数据类型通常用于全文搜索,支持分词等功能。
“fields”: 这是一个嵌套的字段定义,包含了一个名为"keyword"的子字段。
“type”: 这是子字段的数据类型,这里是"keyword"。keyword数据类型通常用于精确匹配和排序,不进行分词。
“ignore_above”: 这是一个可选的参数,用于指定在索引前多少个字符之前,不进行分词处理。在这里,设置为256,表示只有前256个字符会被索引,超过这个长度的文本将被截断。
“age”: 这是一个名为"age"的字段,具有数据类型"type":“long”,表示一个长整数类型的字段。
“remarks”: 这是一个名为"remarks"的字段,具有数据类型"type":“text”,通常用于全文搜索。

这个示例的索引定义了一些基本设置,包括主分片和副本数量,以及文档结构,包括"name"字段,包括了一个子字段"keyword","age"字段和"remarks"字段。这种映射和设置允许索引文档,支持各种查询和分析操作。

插入数据

POST /test-index-users/_doc
{
  "name": "goboy test name",
  "age": "101",
  "remarks": "hello world"
}

POST在不标记ID的时候,系统会默认帮着我们创建一个ID

请在此添加图片描述

Elasticsearch文档的索引响应示例,包含了以下关键信息:

“_index”: 这是文档所属的索引的名称,这里是"test-index-users"。
“_type”: 这是文档的类型,在Elasticsearch 7.x版本之后,通常为"_doc",表示默认文档类型。
“_id”: 这是文档的唯一标识符,用于在索引中唯一标识文档。这里是"EV_giYsBWWxO5_dDBjwQ"。
“_version”: 这是文档的版本号,表示文档的版本。在这里,文档的版本号是1。
“result”: 这是文档索引操作的结果,这里是"created",表示文档已经成功创建。
“_shards”: 这是关于文档索引操作的分片信息。
“total”: 这是总分片数量,这里是2。
“successful”: 这是成功索引的分片数量,这里是1。这表示在2个分片中的1个成功索引。
“failed”: 这是失败的分片数量,这里是0。表示没有分片索引操作失败。
“_seq_no”: 这是文档的序列号,用于跟踪文档的变化。
“_primary_term”: 这是文档所在的主分片的主要期(primary term)。

这个响应表明文档成功地被索引到了"test-index-users"索引中,索引操作是成功的,只有一个分片成功地完成了索引操作。索引操作通常用于将文档添加到Elasticsearch索引中,以便后续搜索和检索。

查看数据

请在此添加图片描述

  • 测试(age)字段与设定的数据类型不匹配的情况
POST /test-index-users/_doc
{
  "name": "test user",
  "age": "error_age",
  "remarks": "hello eeee"
}
  • 提示错误

请在此添加图片描述

修改索引

查看索引状态

curl 'localhost:9200/_cat/indices?v' | grep users

这个命令是使用curl工具查询Elasticsearch中的索引,并使用grep筛选出包含"users"的索引。在Elasticsearch中,_cat/indices端点用于获取有关索引的信息,而| grep users则用于筛选包含"users"的行。

以下是示例命令的解释:

  • curl ‘localhost:9200/_cat/indices?v’: 这是一个curl命令,用于向Elasticsearch实例发出HTTP请求,从_cat/indices端点获取索引信息。-v参数用于显示详细信息。
  • |: 这是Linux/Unix中的管道操作符,用于将前一个命令的输出作为后一个命令的输入。
  • grep users: 这是grep命令,用于筛选包含"users"的行。

当你执行这个命令时,它会列出Elasticsearch中的索引信息,并筛选出包含"users"的索引。这对于检查包含特定关键词的索引非常有用,特别是在具有大量索引的Elasticsearch集群中。请确保你的Elasticsearch实例正常运行,并且能够通过localhost:9200地址访问。

请在此添加图片描述

注意刚创建的索引的状态是yellow的,因为我测试的环境是单点环境,无法创建副本,但是在上述number_of_replicas配置中设置了副本数是1; 所以在这个时候我们需要修改索引的配置。

修改副本数量为0

PUT /test-index-users/_settings
{
  "settings": {
    "number_of_replicas": 0
  }
}

请在此添加图片描述

再次查看状态

curl 'localhost:9200/_cat/indices?v'| grep users

请在此添加图片描述

打开/关闭索引

关闭索引

POST /test-index-users/_close

索引关闭操作将导致该索引不可用,文档无法查询,但数据仍然存在。

请在此添加图片描述

关闭以后再查询数据时

请在此添加图片描述

打开索引

POST /test-index-users/_open

请在此添加图片描述

打开后重新插入数据

POST /test-index-users/_doc
{
  "name": "goboy22222 test name",
  "age": "1001",
  "remarks": "hello world,hello world"
}

请在此添加图片描述

查看索引

mapping

GET /test-index-users/_mapping

请在此添加图片描述

settings

GET /test-index-users/_settings

请在此添加图片描述

关于Elasticsearch索引"test-index-users"的配置信息示例,其中包含了索引的设置(settings)的详细信息。让我为你解释这个信息的各个部分:

“test-index-users”: 这是索引的名称,指定了要配置的索引,名称为"test-index-users"。
“settings”: 这是索引的设置部分,包含了关于索引的配置信息。
“index”: 这是具体索引设置的部分,包括以下属性:
“creation_date”: 这是索引的创建日期,表示为一个时间戳(以毫秒为单位)。在这里,创建日期是"1698824838360"。
“number_of_shards”: 这是主分片的数量,指定为"1",表示该索引有一个主分片。
“number_of_replicas”: 这是副本的数量,指定为"0",表示该索引没有副本。
“uuid”: 这是索引的唯一标识符(UUID),用于唯一标识索引。UUID是"qqxlOmvpR7KQMS8CT345DA"。
“version”: 这是有关索引版本的信息,包括索引的创建版本等。
“provided_name”: 这是索引的提供名称,与索引的名称相同,为"test-index-users"。

这个信息提供了关于"test-index-users"索引的详细配置信息,包括创建日期、分片数量、副本数量、UUID等。这些配置属性对于管理和维护索引非常重要,可以影响索引的性能和行为。

删除索引

将创建的test-index-users删除。

DELETE /test-index-users

Kibana管理索引

在Kibana可以查看和管理索引

请在此添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python小游戏20——超级玛丽

首先,你需要确保你的Python环境中安装了pygame库。如果还没有安装,可以使用以下命令进行安装: bash pip install pygame 运行效果展示 代码展示 python import pygame import sys # 初始化pygame pygame.init() # 设置屏幕尺寸 screen_width …

ZDH权限-扩展支持数据权限

目录 项目源码 预览地址 安装包下载地址 ZDH权限模块 ZDH权限扩展更细粒度方案 第一种方案: 第二种方案: ZDH权限扩展支持数据权限-新增属性 总结 感谢支持 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 预览地址 后…

Unity humanoid 模型头发动画失效问题

在上一篇【Unity实战笔记】第二十二 提到humanoid 模型会使原先的头发动画失效,如下图所示: 头发摆动的是generic模型和动画,不动的是humanoid模型和动画 一开始我是尝试过在模型Optimize Game objects手动添加缺失的头发骨骼的,奈…

数据结构之线段树

线段树 线段树(Segment Tree)是一种高效的数据结构,广泛应用于计算机科学和算法中,特别是在处理区间查询和更新问题时表现出色。以下是对线段树的详细解释: 一、基本概念 线段树是一种二叉搜索树,是算法竞…

Kubernetes——part9-2 kubernetes集群java项目上云部署

一、部署前准备工作 1.1 部署项目情况 1.1.1 业务部署架构 单体服务架构分布式服务架构微服务架构超微服务架构 1.1.2 项目涉及第三方服务 关系型数据库系统 MySQL缓存服务 Redis memcache协调服务 zookeeper消息中间件服务 kafka rabbitmq服务注册 服务发现 nacos 1.1.3…

Verilog实现的莫尔斯电码发生器

莫尔斯或者摩尔斯电码(Morse Code),发明于1837年(另有一说是1836年),通过不同的排列顺序来表达不同的英文字母、数字和标点符号,在这里作一简单处理,仅产生点(Dit)和划(Dah),时长在0.25秒之内为点,超过为划…

【输出1到N之间的偶数】

【输出1到N之间的偶数】 C语言实现C实现Java实现Python实现 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 请写程序实现输出1-N之间的所有偶数。 输入 输入一个整数N 输出 如果N<1输出error&#xff0c;否则&#xff0c;输出1-N之间…

Mac上的免费压缩软件-FastZip使用体验实测

FastZip是Mac上的一款免费的压缩软件&#xff0c;分享一下我在日常使用中的体验 压缩格式支持7Z、Zip&#xff0c;解压支持7Z、ZIP、RAR、TAR、GZIP、BZIP2、XZ、LZIP、ACE、ISO、CAB、PAX、JAR、AR、CPIO等所有常见格式的解压 体验使用下来能满足我所有的压缩与解压的需求&a…

华为云计算知识总结——及案例分享

目录 一、华为云计算基础知识二、华为云计算相关案例实战案例一&#xff1a;搭建弹性云服务器&#xff08;ECS&#xff09;并部署Web应用案例二&#xff1a;构建基于OBS的图片存储和分发系统案例三&#xff1a;基于RDS的高可用数据库应用案例四&#xff1a;使用华为云DDoS防护保…

RHCE——DNS域名解析服务器、selinux、防火墙

1、DNS简介 DNS &#xff08; Domain Name System &#xff09;是互联网上的一项服务&#xff0c;它作为将域名和 IP 地址相互映射的一个分布式 数据库&#xff0c;能够使人更方便的访问互联网。 DNS 系统使用的是网络的查询&#xff0c;那么自然需要有监听的 port 。 DNS 使…

使用PostgreSQL进行高效数据管理

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用PostgreSQL进行高效数据管理 PostgreSQL简介 安装PostgreSQL 在Ubuntu上安装PostgreSQL 在CentOS上安装PostgreSQL 在macOS上…

实现GUI界面中的logo图片的编码与隐藏

实现GUI界面中的logo图片的编码与隐藏 一、问题描述二、解决办法 一、问题描述 利用PyQt5编写的GUI界面&#xff0c;有时候需要我们添加自定义的图片来作为UI界面的logo&#xff0c;在源码使用时&#xff0c;logo的形式一般不影响使用&#xff0c;但是当我们需要将软件进行打包…

真·香!深度体验 zCloud 数据库云管平台 -- DBA日常管理篇

点击蓝字 关注我们 zCloud 作为一款业界领先的数据库云管平台&#xff0c;通过云化自治的部署能力、智能巡检和诊断能力、知识即代码的沉淀能力&#xff0c;为DBA的日常管理工作带来了革新式的简化与优化。经过一周的深度体验&#xff0c;今天笔者与您深入探讨 zCloud 在数据库…

Docsify文档编辑器:Windows系统下个人博客的快速搭建与发布公网可访问

文章目录 前言1. 本地部署Docsify2. 使用Docsify搭建个人博客3. 安装Cpolar内网穿透工具4. 配置公网地址5. 配置固定公网地址 前言 本文主要介绍如何在Windows环境本地部署 Docsify 这款以 markdown 为中心的文档编辑器&#xff0c;并即时生成您的文档博客网站&#xff0c;结合…

AI虚拟主播中的订单处理模块开发探索‌!

‌AI虚拟主播作为新兴的数字媒体形式&#xff0c;正在逐步改变着内容创作与传播的格局&#xff0c;它们不仅能够提供24小时不间断的直播服务&#xff0c;还能通过智能算法实现与观众的实时互动&#xff0c;极大地丰富了用户体验。 而在AI虚拟主播的背后&#xff0c;一个高效、…

Java项目实战II基于Spring Boot的文理医院预约挂号系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在医疗资源日益紧张的背景下&#xff0…

【快速上手】pyspark 集群环境下的搭建(Standalone模式)

目录 前言 &#xff1a; 一、spark运行的五种模式 二、 安装步骤 安装前准备 1.第一步&#xff1a;安装python 2.第二步&#xff1a;在bigdata01上安装spark 3.第三步&#xff1a;同步bigdata01中的spark到bigdata02和03上 三、集群启动/关闭 四、打开监控界面验证 前…

【学习enable_if模板, 学习unqiue_str 删除操作】

enable_if 是 C 标准库中的一个模板结构体&#xff0c;它用于条件编译和 SFINAE&#xff08;Substitution Failure Is Not An Error&#xff09;。enable_if 的主要作用是通过条件编译来控制模板的实例化&#xff0c;从而实现条件编译和 SFINAE。 1. enable_if 的基本用法如下…

放大器稳定性分析

1 稳定性的时域体现 下图的放大器构成的跟随电路且反向输入端有一个电容&#xff0c;电路工作过程如下&#xff1a;输入Vin从0开始增大&#xff0c;Vout也开始上升&#xff0c;Vout通过R给C充电&#xff0c;Vfb点电压随着电容的充电增加&#xff0c;Vfb就相对与Vout存在时延&a…

学习记录:基于Z-Stack 3.0.1的Zigbee智能插座实现

引言 本文记录了笔者基于Z-Stack 3.0.1协议栈&#xff0c;通过学习Zigbee通信协议&#xff0c;实现一个简单的智能插座控制过程。通过这个过程&#xff0c;笔者对Zigbee网络的形成、设备间的通信以及低功耗设计有了更深入的理解。 工程代码链接&#xff1a;链接&#xff1a;h…