Elasticsearch 索引与文档操作实践指南

上节我们部署了elasticsearch8.4.1和kibana8.4.1以及ik分词器,本节我们来学习下elasticsearch的相关索引,文档操作。
首先我们kinana的主界面找到开发者工具在里面我们来编写相关操作。
在这里插入图片描述

标题查看集群情况

GET /_cluster/health

在这里插入图片描述
详细解释:

  • cluster_name: 这是Elasticsearch集群的名称,这里命名为"my-application"。 status:
    集群的健康状态。这里的状态是"yellow",表示所有的主分片都已分配,但至少缺少一个副本。Elasticsearch中的健康状态有三种颜色:
  • green:所有的主分片和副本分片都是活动的。
  • yellow:所有的主分片都是活动的,但不是所有的副本都是活动的。数据仍然完整,但高可用性可能受到影响。
  • red:一些主分片不可用,可能会丢失数据。 timed_out: 表示查询是否超时。这里的值是false,意味着查询没有超时。
  • number_of_nodes 和 number_of_data_nodes:
    分别表示集群中的节点总数和数据节点的数量。这里都是1,说明集群中只有一个节点,且这个节点是数据节点。
  • active_primary_shards 和 active_shards:
    分别表示活跃的主分片和总的活跃分片数量。这里都是10,说明有10个主分片是活跃的,且没有额外的副本分片(因为总数也是10)。
  • relocating_shards: 正在迁移的分片数量。这里是0,表示没有分片在迁移。 initializing_shards:
    正在初始化的分片数量。这里是0,表示没有分片在初始化。 unassigned_shards:
    未分配的分片数量。这里是2,通常这表示有分片因为某些原因(如节点故障、磁盘空间不足等)没有被分配到任何节点上。这是集群状态为yellow的一个原因,因为有副本分片没有被分配。
  • delayed_unassigned_shards: 延迟未分配的分片数量。这里是0,表示没有延迟未分配的分片。
  • number_of_pending_tasks: 集群中等待执行的挂起任务数量。这里是0,表示没有挂起的任务。
  • number_of_in_flight_fetch: 当前正在进行的拉取操作数量。这里是0,表示没有正在进行的拉取操作。
  • task_max_waiting_in_queue_millis: 任务在队列中等待的最长时间(毫秒)。这里是0,表示没有任务在等待。
  • active_shards_percent_as_number: 活跃分片的百分比。

索引操作

创建索引

PUT /mall-shop
{"settings": {"number_of_shards": 1,"number_of_replicas": 1}
}

解释说明

  • “settings”:这是一个包含索引级别设置的顶层对象。
  • “number_of_shards”:定义了索引中主分片的数量。在这个例子中,它被设置为1,意味着索引将只有一个主分片。
  • “number_of_replicas”:定义了每个主分片的副本数量。在这个例子中,它被设置为1,意味着每个主分片将有一个副本。

在这里插入图片描述

  • acknowledged":表示请求是否已经被集群中的主节点所接收。在这里,它被设置为true,意味着请求已被接收。
  • “shards_acknowledged”:在Elasticsearch中,索引操作是分布式的,并且会涉及多个分片。这个字段表示分片级别的操作是否已经被成功接收。在这里,它被设置为true,意味着所有相关的分片都接收到了操作请求。
  • “index”:返回了操作的索引名称,这里是mall-shop。

更新索引

PUT /mall-shop/_settings
{"settings": {"number_of_replicas": 0}
}

在这里插入图片描述

查询索引列表

GET /_cat/indices?v=true&pretty

在这里插入图片描述

查看索引是否存在

GET /mall-shop

在这里插入图片描述

解释说明:

  • mall-shop:这是索引的名称,即mall-shop。
  • aliases:这是一个空的对象,意味着当前没有为该索引设置别名。别名在Elasticsearch中是一个很有用的功能,允许你为索引提供一个或多个额外的名称,这样你就可以通过别名来查询索引,而不是直接使用索引名。
  • mappings:这也是一个空的对象。在Elasticsearch中,mappings定义了索引中每个字段的类型、属性和其他设置。例如,你可以指定某个字段是字符串类型、整数类型、是否应该被索引、是否应该被分析等等。这里为空,可能意味着索引尚未定义任何字段的映射,或者这是一个空的、新的索引。
  • settings:这部分包含了索引的设置和元数据。
  • routing:定义了与路由相关的设置。在这里,它有一个allocation子对象,用于定义索引分片的分配策略。
  • number_of_shards:定义了索引的主分片数量。在这里,它被设置为"1",意味着这个索引只有一个主分片。
  • provided_name:这是索引的原始名称,即mall-shop。
  • creation_date:这是一个时间戳,表示索引的创建时间。但这里的值"1719236130118"看起来不是一个典型的时间戳格式,可能是示例数据或经过某种处理的。
  • number_of_replicas:定义了每个主分片的副本数量。在这里,它被设置为"0",意味着这个索引没有副本。
  • uuid:是索引的唯一标识符,通常用于管理和引用特定的索引。
  • version:包含了与索引版本相关的信息。
  • include:定义了哪些节点应该被包括在索引分片的分配中。这里指定了一个_tier_preference条件,即只有带有"data_content"这个标签的节点才会被考虑用于分配索引的分片。
  • created:表示创建索引时Elasticsearch的版本号。这里的"8040199"同样看起来不是一个典型的版本号,可能是示例数据或某种特定的标识符。
  • index:这是一个嵌套的JSON对象,包含了索引的特定设置。

删除索引

DELETE /mall-shop

在这里插入图片描述

文档操作

新增文档(指定id,不指定系统也会帮我们自动生成)

PUT /mall-shop/_doc/1
{"id":101,"title":"study elasticsearch 8.4.1","pv":100
}

在这里插入图片描述

解释说明:

  • _index: 这是操作发生的索引名称,即"mall-shop"。
  • _id: 这是索引中文档的唯一标识符。在这个例子中,文档的ID是"1"。
    _version: 这是文档的当前版本。每次文档被索引、更新或删除时,其版本号都会递增。在这个例子中,版本号是1,表示这是一个新创建的文档。
  • result: 这表示操作的结果。“created"表示文档已成功创建。如果文档已经存在并且你尝试使用相同的ID再次索引它,结果可能会是"updated”。
  • _shards: 这是一个关于分片操作的信息块。在Elasticsearch中,索引被分割成多个分片,并且每个分片都可以有零个或多个副本。
  • total: 操作涉及的总分片数。在这个例子中,它是1,意味着索引只有一个分片(或操作只涉及一个分片)。
  • successful: 成功操作的分片数。这里是1,表示所有涉及的分片都成功完成了操作。
  • failed: 失败操作的分片数。这里是0,表示没有分片在操作中失败。
  • _seq_no: 这是文档在索引中的序列号。Elasticsearch 6.x及更高版本引入了序列号(sequence numbers)和主要术语(primary terms)作为乐观并发控制(optimistic concurrency control)的一部分。序列号用于跟踪文档版本和确定文档操作的顺序。在这个例子中,序列号是0,因为这是一个新创建的文档。
  • _primary_term: 这是与文档相关的主要术语。它也是乐观并发控制的一部分,用于在文档复制和恢复过程中识别文档的“时代”。在这个例子中,主要术语是1,表示这是与文档相关的第一个时代。

查看文档

GET /mall-shop/_doc/1

在这里插入图片描述

解释说明:

  • _index:这表示文档所在的索引名称,即"mall-shop"。

  • _id:这是文档的唯一标识符,即"1"。在Elasticsearch中,每个文档都有一个唯一的_id,用于在索引中标识和检索该文档。

  • _version:这是文档的版本号,即1。每当文档被修改时(如更新、删除后重新索引等),其版本号都会递增。这有助于跟踪文档的更改历史。

  • _seq_no:这是文档在索引中的序列号(sequence number)。Elasticsearch使用序列号来跟踪文档的变化,它是乐观并发控制(optimistic concurrency control)的一部分。序列号随着文档的变化而递增。

  • _primary_term:这是与文档相关的主要术语(primary term)。它与序列号一起用于在Elasticsearch中处理并发更新。主要术语在索引的主分片生命周期内是唯一的,并且当主分片被替换时(例如,由于故障转移),主要术语会增加。

  • found:这是一个布尔值,表示是否找到了与给定_id匹配的文档。在这个例子中,found是true,表示找到了文档。

  • _source:
    id: 文档的内部ID,值为101。请注意,这与_id不同,_id是Elasticsearch中用于索引和检索文档的唯一标识符。
    title: 文档的标题,值为"study elasticsearch 8.4.1"。这可能是一个描述文档内容的标题。
    pv: 可能是页面浏览量(page views)的缩写,值为100。这可能表示该文档(可能是网页、商品页面等)已被访问或查看了100次。
    这是文档的实际内容,也称为源字段(source field)。它包含了文档的所有原始JSON数据。在这个例子中,文档包含三个字段:

修改文档(pots/put都支持,需要指定id)

POST /mall-shop/_doc/1
{"id":102,"title":"post study elasticsearch8.4.1","pv":300,"uv":101
}

在这里插入图片描述

搜索

GET /mall-shop/_search

在这里插入图片描述

​解释说明:

  • took:这个字段表示执行查询所花费的时间,以毫秒为单位。在这个例子中,查询花费了887毫秒。

  • timed_out:这是一个布尔值,表示查询是否超时。false表示查询没有超时。

  • _shards:

  • total: 查询涉及的总分片数。这里是1,意味着索引可能只有一个主分片。

  • successful: 查询成功执行的分片数。

  • skipped: 查询被跳过的分片数。在一些特定的查询和过滤条件下,某些分片可能不需要被查询,因此会被跳过。

  • failed: 查询失败的分片数。这里为0,表示所有涉及的分片都成功返回了结果。
    这个部分提供了有关查询涉及的分片的信息。

  • hits:

    • total:
    • max_score: 查询返回文档中的最高评分。在Elasticsearch中,每个文档都有一个与查询相关的评分,这个评分决定了文档在结果列表中的排序。在这个例子中,所有匹配的文档评分都是1(可能是因为这是一个简单的term查询或match查询,且没有额外的评分逻辑)。
    • hits:
      • value: 匹配查询的文档总数。这里是1,表示只有一个文档匹配了查询条件。
        relation: 表示value字段是如何与真实的文档数量相关的。"eq"表示value字段的值与真实的文档数量相等。
      • _index: 文档的索引名,这里是mall-shop。
      • _id: 文档的ID,这里是1。
      • _score: 文档的评分,这里是1。
      • _source: 这是文档的原始内容(即源JSON),包含了文档的所有字段和它们的值。在这个例子中,文档包含了id、title、pv和uv四个字段,分别表示文档的内部ID、标题、页面浏览量(page views)和独立访客数(unique visitors)。
        这是一个数组,包含了查询返回的具体文档。在这个例子中,只有一个文档被返回。
        这是查询返回的主要部分,包含了查询的结果。

​删除文档

DELETE /mall-shop/_doc/1

在这里插入图片描述

通过上述实践,我们不仅掌握了如何监控和管理Elasticsearch集群的健康状况,还学会了如何高效地操作索引和文档,这涵盖了从索引创建到文档的生命周期管理的全过程。理解并熟练运用这些基础操作,是构建复杂搜索应用和数据分析系统的基石。实践出真知,建议读者动手尝试这些命令,结合实际应用场景不断深化对Elasticsearch功能的理解和掌握,以支撑更加丰富多样的数据处理需求。
更多内容请关注一下公众号
在这里插入图片描述

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

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

相关文章

心理学|发展心理学——发展心理学单科作业(中科院)

一、单选题(第1-100小题,每题0.5分,共计50分。) 1、认为心理发展是主体与客体相互作用的结果,持该观点的学者是( ) 分值0.5分 A、皮亚杰 B、普莱尔 C、吴伟士 D、施太伦 A 2、艾里克森认为童年期(7岁~12岁)的主要发展任务是( ) 分值0.5分 A、获得勤…

(四十四)Vue Router的命名路由和路由组件传参

文章目录 命名路由组件传参query参数方式参数传递参数接收 params参数方式参数传递参数接收 props配置方式布尔值形式对象模式函数模式 上一篇:(四十三)Vue Router之嵌套路由 命名路由 命名路由是为路由配置项提供一个名称,以便…

云计算【第一阶段(18)】磁盘管理与文件系统 分区格式挂载(一)

目录 一、磁盘基础 二、磁盘结构 2.1、机械硬盘 2.2、固态硬盘 2.3、扩展移动硬盘 2.4、机械磁盘的一些计算(了解) 2.5、磁盘接口类型 二、Linux 中使用的文件系统类型 2.1、磁盘分区的表示 2.1.1、主引导记录(MBR) 2.1.2、Linux中将硬盘、分…

【十二】图解 Spring 核心数据结构:BeanDefinition

图解 Spring 核心数据结构:BeanDefinition 简介 使用spring框架的技术人员都知道spring两个大核心技术IOC和AOP,随着投入更多的时间去学习spring生态,越发觉得spring的发展不可思议,一直都是引领着Java EE的技术变革,这…

麒麟信安系统关闭core文件操作

在使用麒麟信安系统时,如果应用程序运行过程中崩溃了,此时并不会导致内核崩溃,只会在tmp目录下产生崩溃数据,如下图 不过tmp目录下的分区容量有限,当崩溃的应用core文件过大时将会占用tmp空间,导致tmpfs分区…

上海计算机学会2022年6月月赛C++丙组T4连续的零

题目描述 给定一个 01 序列 b1​b2​…bn​,01 的意思就是这个数列里只有 0 与 1。 请问最少需要将多少个 1 改成 0,序列里会出现至少 k 个连续的 0。 输入格式 第一行:两个整数 n 与 k。第二行:n 个字符表示 b1​b2​…bn​&…

Msql----表的约束

提示:以下是本篇文章正文内容,下面案例可供参考 一、表的约束 表的约束:表中一定要有约束,通过约束让插入表中的数据是符合预期的。它的本质是通过技术手段,让程序员插入正确的数据,约束的最终目标是保证…

IP地址的主要功能

IP地址,作为互联网协议(Internet Protocol)的核心组成部分,是网络设备在互联网中的唯一标识。它不仅仅是一个简单的数字串,而是承载着网络通信的重要功能。以下是IP地址的主要功能及其在网络中的重要性的详细分析。 唯…

NAPI篇【4】——NAPI应用点亮一个LED

OpenHarmony的NAPI功能为开发者提供了JS与C/C不同语言模块之间的相互访问,交互的能力,使得开发者使用C或者C语言实现应用的关键功能。如操作开发板中某个GPIO节点的状态(OpenHarmony并没有提供直接操作GPIO口状态的API)&#xff0…

深入解读Netty中的NIO:原理、架构与实现详解

深入解读Netty中的NIO:原理、架构与实现详解 Netty是一个基于Java的异步事件驱动网络应用框架,广泛用于构建高性能、高可扩展性的网络服务器和客户端(学习netty请参考:深入浅出Netty:高性能网络应用框架的原理与实践&…

vue2加入keep-alive后的生命周期情况

目录 1.加入keep-alive会执行哪些生命周期?1.activated2.deactivated 2.keep-alive是什么 : 缓存当前组件3.如果当前组件加入了keep-alive第一次进入这个组件会执行5个生命周期4.第二次或者第N次进去组件会执行哪些生命周期?1.如果当前组件加…

AIGC:引领内容创作新时代的智能引擎

随着人工智能技术的飞速发展,AIGC(Artificial Intelligence Generated Content,人工智能生成内容)逐渐崭露头角,成为推动内容创作领域变革的重要力量。作为一名程序员,我深感AIGC的巨大潜力和广阔前景&…

【Flink metric(3)】chunjun是如何实现脏数据管理的

文章目录 一. 基础逻辑二. DirtyManager1. 初始化2. 收集脏数据并check3. 关闭资源 三. DirtyDataCollector1. 初始化2. 收集脏数据并check3. run:消费脏数据4. 释放资源 四. LogDirtyDataCollector 一. 基础逻辑 脏数据管理模块的基本逻辑是: 当数据消…

猫咪也怕油腻?选对猫粮是关键!福派斯鲜肉猫粮守护猫咪健康

亲爱的猫友们,我们都知道,猫咪的饮食健康是每一个铲屎官都非常关心的问题。最近,有些猫友向我反映,他们给猫主子喂食的猫粮油脂比较大,不禁让人担心这对猫咪是否真的好。 1️⃣ 首先,让我们来聊聊油脂在猫粮…

Spring Boot + Vue 全栈开发,都需要哪些前端知识?

Node.js默认安装的npm包和工具的位置:Node.js目录\node_modules 在这个目录下你可以看见 npm目录,npm本身就是被NPM包管理器管理的一个工具,说明 Node.js已经集成了npm工具 #在命令提示符输入 npm -v 可查看当前npm版本 npm -v 二、使用n…

go多路复用功能

大家在工作中使用go语言都是因为go语言中提供方便又简介的协成吧,只需一个go关键字就可以开启一个协成,今天为大家推荐一种go实现的多路复用代码,大家可以参考一下呀可以下方评论留言呦 package test_7import ("fmt""testing…

如何在Ubuntu的docker部署web应用

1. 安装Docker和Docker Compose 首先,先介绍一下Docker与Docker Compose。 1、Docker: 功能:Docker是一个开源的容器化平台,用于开发、打包和运行应用程序。它利用容器技术(如Docker容器)来打包应用及其…

代理IP超时是什么原因?

很多用户在使用代理IP进行网络访问时,可能会遇到代理IP超时的情况,也就是代理IP的延迟过高。代理IP延迟过高会影响用户的网络体验和数据获取效率。因此,了解代理IP延迟过高的原因很重要。以下是导致代理IP延迟过高的一些常见原因:…

vue3-seamless-scroll替代源码

旧项目用的 vue3-seamless-scroll 怎么写都不生效&#xff0c;一看源码两年没更新了&#xff0c;不想调试&#xff0c;还是自己写吧&#xff0c;再不济问问GPT都会更快一点 scroll.vue <template><div class"scroll-container" ref"scrollContainerR…

FL Studio 21.2.3官方中文版重磅发布,手把手教你图文安装

FL Studio 21.2.3官方中文版重磅发布纯正简体中文支持&#xff0c;更快捷的音频剪辑及素材管理器&#xff0c;多样主题随心换&#xff01; 在数字音乐制作领域&#xff0c;FL Studio一直以其强大的功能和用户友好的界面而备受赞誉。随着技术的不断进步和音乐制作需求的日益增长…