【Elasticsearch<二>✈️✈️】基本属性概念与MySQL数据库的不同之处

目录

🍸前言

🍻一、Elasticsearch 基本属性

        1.1 ES VS MySQL

        1.2 ES 属性概念

        1.3 ES 的增删改查

🍺二、自动补全场景

        2.1 场景举例

        2.2 使用数据分词器

        2.3 查询的流程

        2.4 整个查询流程图

 🍹章末


🍸前言

        上次初步了解到 Elasticsearch 的基本使用,并且完成 ES 服务安装, ES 服务浏览器插件安装, ES 可视化客户端安装,以及 IK 分词器的安装,踩了很多坑,好在全部解决了。基于以上安装配置,来熟悉下 ES 的各种属性。本地安装的链接如下:

【Elasticsearch<一>✈️✈️】简单安装使用以及各种踩坑-CSDN博客

🍻一、Elasticsearch 基本属性

        1.1 ES VS MySQL

        在具体使用之前,先了解下和我们常用数据库有哪些相似之处,常用的属性对比如下

        1.2 ES 属性概念

        索引(index):

  • Elasticsearch中的索引类似于数据库,承担容器的角色。一个索引可以包含多个文档,并且每个文档都有自己的类型和字段。

    类型(type):
  • 在较旧的版本中,类型类似于表,它们定义了索引中文档的结构和字段。在较新的Elasticsearch版本中,通常只有一个默认类型 "_doc"。也就是说一个索引下面建议只有一个类型。

    文档(document):
  • 文档类似于数据库中的行。每个文档都是一个JSON对象,包含了一系列字段和对应的值。

    字段(field):
  • 字段类似于数据库表中的列。每个字段都有一个名称和对应的值,值可以是各种类型的数据,如文本、数字、日期等。
        1.3 ES 的增删改查

        注:在实操之前,确保之前安装的服务都启动了

        1.3.1 PUT 请求,用于创建或者更新索引,使用如下,创建了一个新的索引,到浏览器插件中也可看到具体的索引库以及库中数据的详细信息

        my_first_index 创建的索引名称

        _doc 7.x版本默认的_type

        1 指定文档的id

        {} json 数据格式的内容,类似于<k,v>,一个键对应一个值

PUT /my_first_index/_doc/1
{"name":"第一个索引库","createtime":"2024.4.26"
}

     

        1.3.2 POST 请求, 类似于 PUT 请求,但是可以创建索引的时候不用指定文档 id,会生成一段字符作为默认文档 id,如下:通过插件也可以看到,随机生成的文档 id 是一个随机字符串

        注:创建或者修改的时候,索引或者类型命名不能包含大写字母,会报错

POST /my_first_index/_doc
{"name":"POST请求新增一条数据","createtime":"2024.4.26.14:00","title":"POST"
}

 

        1.3.3 GET 请求,获取索引库数据信息,如下:

        根据文档 id 查询某一条数据

GET /my_first_index/_doc/1

         查询某个索引库全部数据

GET /my_first_index/_search
{"query": {"match_all": {}}
}

 

 

        1.3.4 DELETE 请求 ,需要指定索引名称,如下:

🍺二、自动补全场景

        2.1 场景举例

        日常接触到的场景有很多,比如购物网站上输入”短袖“,可能会提示有”短袖 重磅“、”短袖 纯色“等等很多,其他很多网站上都可以遇到这种场景,比如经常逛的掘金社区,就以这个为模板,实操下,如下:

         2.2 使用数据分词器

        将这些数据录入的时候,指定索引库使用的分词器,本地使用的是 IK 分词器,前提是已经安装好并且没有报错

        2.2.1 创建索引库,指定分词器

        创建索引库的时候,指定该索引库的设置,这里指定的是第一种分词模式

IK 分词器有两种分词颗粒度

  • ik_max_word 对应着 IK 分词器的细粒度模式,它会尽可能地将文本切分成最小的词语单元。
  • ik_smart 对应着 IK 分词器的搜索引擎模式,它会根据文本的内容和上下文进行智能分词,提高搜索结果的相关性和效率。
PUT /juejin_index
{"settings": {"analysis": {"analyzer": {"my_ik_analyzer": {"tokenizer": "ik_max_word"}}}},"mappings": {"properties": {"content": {"type": "text","analyzer": "my_ik_analyzer"}}}
}

        2.2.2 数据录入

         采用批量插入的方式,在最后两个数据中加入了两个扰乱字符串,如下:

POST /_bulk
{"index":{"_index":"juejin_index"}}
{"name":"可视化方案 前端"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化编辑器"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化拖拽软件"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化表单设计"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化大屏前端"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化工作流引擎"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化大屏屏幕适配"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化数学软件"}
{"index":{"_index":"juejin_index"}}
{"name":"可视化大屏特效"}
{"index":{"_index":"juejin_index"}}
{"name":"123可视化"}
{"index":{"_index":"juejin_index"}}
{"name":"可以视为化学武器"}

        2.2.3 查询测试

        查询,”可视化“,相应的会有哪些提示,排名前三如下,排序是根据每个词条的匹配分数值从大到小排列,比如:

”123可视化“  有 14.6% 的把握

”可视化大屏“ 有 13.2% 的把握

”可视化编辑器“ 有 12.3% 的把握

GET /juejin_index/_search
{"query": {"match": {"name": "可视化"}}
}

 

  1. took: 查询执行的时间,以毫秒为单位。
  2. timed_out: 表示查询是否超时。
  3. _shards: 关于索引分片的信息,包括总分片数、成功分片数、跳过的分片数和失败的分片数。
    • total: 总分片数。
    • successful: 成功的分片数。
    • skipped: 被跳过的分片数。
    • failed: 失败的分片数。
  4. hits: 匹配的文档信息。
    • total: 匹配的文档总数。
      • value: 匹配的文档数。
      • relation: 与匹配文档数相关的关系,例如 "eq" 表示相等。
    • max_score: 匹配文档中最高的分数。
    • hits: 实际匹配的文档数组,每个文档包含以下信息:
      • _index: 文档所属的索引。
      • _type: 文档类型,在此处为 "_doc"。
      • _id: 文档的唯一标识符。
      • _score: 文档匹配得分,表示与查询条件的相关性。
      • _source: 包含文档原始内容的字段,以及其他自定义字段(如果有)。在这个例子中,"name" 是一个自定义字段,包含了文档的名称信息。
        2.3 查询的流程

        数据从录入到查询的过程都有哪些

        2.3.1 分词录入,这里使用的 IK 分词器,首先会对字符串拆分,如下:

        ”可视化大屏“ 这个字符串可以拆分为 这几个词条:{”可视化“,”可视“,”化“,”大“,”屏“},然后记录每个词条对应的文档 id,剩余的字符串也都是如此。

         2.3.2 用户输入词汇拆分,IK 分词器会将”可视化“拆分为如下:

          ”可视化“会拆分为如下词条:{”可视化“,”可视“,”化“},然后根据这些词条到词条列表中查询对应的文档id

        2.4 整个查询流程图

        从用户输入”可视化“开始,流程大概如下:

 🍹章末

        文章到这里就结束了~

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

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

相关文章

C++进阶--智能指针

智能指针的概念 智能指针是C中的一个重要概念&#xff0c;用于管理动态分配的对象内存。它是一个类模板&#xff0c;通过封装原始指针&#xff0c;并在对象生命周期结束时自动释放内存&#xff0c;从而避免了内存泄漏和资源管理的繁琐工作。 C标准库提供了多种常见的智能指针…

CasinoRoyale靶机练习实践报告

CasinoRoyale靶机练习实践报告 下载地址: https://drive.google.com/open?id1FYP246L63zShV00wOckAQ5F5XJ4HkZ0Lhttps://download.vulnhub.com/casinoroyale/CasinoRoyale.ovahttps://download.vulnhub.com/casinoroyale/CasinoRoyale.ova.torrent ( Magnet) 1 安装靶机 …

【Java Spring MVC项目异常解决】HTTP 500

HTTP 500状态码表示“内部服务器错误”&#xff08;Internal Server Error&#xff09;。这是一个通用的错误响应&#xff0c;表明服务器在处理请求时遇到了预料之外的情况&#xff0c;导致无法完成请求。500错误是服务器端错误的一种&#xff0c;与客户端无关。在Web开发中&am…

强化SSH服务安全的最佳实践

SSH&#xff08;Secure Shell&#xff09;作为一种广泛应用于Linux和其他类Unix系统中的强大工具&#xff0c;为管理员提供了安全的远程登录和命令执行功能。在现今高度互联的网络环境中&#xff0c;确保SSH服务的安全性显得尤为重要。本文将详细阐述一系列SSH服务的最佳实践&a…

【LangChain系列 12】Prompt模版——序列化

本文速读&#xff1a; PromptTemplate FewShotPromptTemplate 通常prompt以文件形式存储比python代码更好&#xff0c;一方面可以更容易共享、存储。本文将介绍在LangChain中如何对prompt以不同的方式序列化。 一般来说&#xff0c;对于序列化有以下两个设计原则&#xff1a…

吴恩达机器学习笔记:第 8 周-13 聚类(Clustering)13.3-13.5

目录 第 8 周 13、 聚类(Clustering)13.3 优化目标13.4 随机初始化13.5 选择聚类数 第 8 周 13、 聚类(Clustering) 13.3 优化目标 K-均值最小化问题&#xff0c;是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和&#xff0c;因此 K-均值的代价函数&#xff08;又…

《微信公众号开发---一站式开发流程完整版本》 测试公众号账号及本地环境搭建/验证本地编写的代码,接入微信指南请求测试正常

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 1.准备工作 1.需要先登录微信公众号平台&#xff1a;微信公众平台 注册如果是公司开发请注册服务号&#xff0c;个人开发请注册订阅号 2.注册完成&#xff0c;需要开通认证 2.以上操作完成&#xff0c…

通信原理(2)--随机过程

通信原理(2)–随机过程 3.1随机过程的基本概念 随机过程{x(t)}由一族时间函数 x i ( t ) x_i(t) xi​(t)&#xff0c;i1,2.3…组成&#xff0c;每一个时间函数 x i ( t ) x_i(t) xi​(t)称为随机过程{x(t)}的一个样本函数&#xff08;一个实现&#xff09; 每个样本函数在时间…

ASP.NET某企业信息管理系统的设计与实现

摘 要 信息管理系统就是我们常说的MIS(Management Information System),它是一个计算机软硬件资源以及数据库的人-机系统。经过对题目和内容的分析,选用了Microsoft公司的ASP.NET开发工具,由于它提供了用于从数据库中访问数据的强大工具集,使用它可以建立开发比较完善的数据库…

《2024年绿色发展报告》:算力与电力矛盾愈加突出!

2024年4月22日&#xff0c;第55个世界地球日&#xff0c;超聚变发布《2024年绿色发展报告》&#xff0c;向社会展示超聚变面对宏观形势变化、产业趋势变化&#xff0c;推进绿色发展、科技向绿的探索与实践成果。 2023年&#xff0c;算力产业发生了深刻变化。大模型带来AI算力需…

Git如何配合Github使用

1.安装Git https://git-scm.com/ ##2.配置 Git 安装完成后&#xff0c;你需要设置 Git 的用户名和邮箱地址&#xff0c;这样在提交代码时就能知道是谁提交的。你可以在命令行中输入以下命令来配置&#xff1a; git config --global user.name "Your Name" git con…

探索UTONMOS《神念无界-源起山海》元宇宙游戏的奇幻世界

在科技的前沿&#xff0c;元宇宙游戏如同一扇神秘的大门&#xff0c;缓缓开启&#xff0c;引领我们进入一个前所未有的奇幻世界。 UTONMOS《神念无界-源起山海》元宇宙游戏是数字世界的巅峰之作&#xff0c;它打破了现实与虚拟的界限&#xff0c;让玩家能够身临其境地体验各种奇…

U盘格式转换GPT格式转回DOS

当前格式 fdisk /dev/sdb# 在 fdisk 提示符下&#xff0c;输入以下命令删除分区&#xff1a; d # 选择要删除的分区编号&#xff08;如 1、2 等&#xff09; w开始转换 [rootnode-24 ~]# fdisk /dev/sdbWelcome to fdisk (util-linux 2.37.4). Changes will remain in memory o…

[笔试训练](八)

目录 022&#xff1a;求最小公倍数 023&#xff1a;数组中的最长连续子序列 024&#xff1a;字母收集 022&#xff1a;求最小公倍数 求最小公倍数_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 求最小公倍数公式&#xff1a;lcm(a,b)a*b/gcd(a,b)&am…

Android使用ProtoBuf 适配 gradle7.5 gradle8.0

ProtoBuf 适配 Gradle7.5 gradle-wrapper.properties 配置 distributionUrlhttps\://services.gradle.org/distributions/gradle-7.5-bin.zipProject&#xff1a;build.gradle: plugins {id com.android.application version 7.4.2 apply falseid com.android.library versio…

星尘智能 AI 机器人 S1——国产机器人的巅峰之作

AI智能机器人真的太炸裂了 国产科技威武-CSDN直播AI智能机器人真的太炸裂了 国产科技威武https://live.csdn.net/v/382519 最近发现了一个国产的机器人&#xff0c;真的让人惊叹不已&#xff01;它就是星尘智能 AI 机器人 S1&#xff01; 这个机器人简直太牛逼了&#xff01;…

elaticsearch windows安装

es下载地址 https://www.elastic.co/cn/downloads/elasticsearch https://www.elastic.co/cn/downloads/past-releases#elasticsearch 在这里插入图片描述 下载直接解压&#xff0c;解压后目录 双击bin目录下的elasticsearch.bat开启服务 注意&#xff1a;9300 端口为 Elas…

03 spring-boot+mybatis+jsp 的增删改查的入门级项目

前言 主要是来自于 朋友的需求 项目概况 就是一个 用户信息的增删改查然后 具体到业务这边 使用 mybatis xml 来配置的增删改查 后端这边 springboot mybatis mysql fastjson 的一个基础的增删改查的学习项目, 简单容易上手 前端这边 jsp 的 基础的试题的增删改查 学习项…

Android使用AlertDialog实现弹出菜单

最近又开始捣鼓APP&#xff0c;许多api , class都忘记怎么用了&#xff0c;楼下使用AlertDialog实现个弹出菜单&#xff0c;结果直接crash&#xff0c;查了半天&#xff0c;终于即将&#xff0c;记录一下…… 1 实现代码 AlertDialog.Builder mBuilder new AlertDialog.Builde…

MySQL B+索引的工作原理及应用

引言 在数据库系统中&#xff0c;索引是优化查询、提高性能的关键技术之一。特别是在MySQL数据库中&#xff0c;B树索引作为最常用的索引类型&#xff0c;对数据库性能有着至关重要的影响。本文旨简单解析MySQL中B树索引的工作原理&#xff0c;帮助学生朋友们更好地理解和利用…