人格分裂(交互问答)-小白想懂Elasticsearch

通过交互式追问了解一个中间件


? 啥是Elasticsearch

! 分布式搜索和分析引擎

? 为啥是分布式搜索,单体难道用不了吗

? 实际上是说这个东西可以分布式部署

! 单机可用但扩展性差,分布式通过分片、副本和负载均衡实现海量数据存储与高并发处理

? 提到集群,这里分布式到底是集群还是分布式

! Elasticsearch的分布式是通过集群实现的,分布式是设计理念,集群是实现方式(目标和手段)

? 那集群到底是什么,是一样状态的节点吗

! 不是的,实际上是很多不同节点相互联系形成一个集群(状态同步的逻辑整体)

? 明明是不一样的分片,为什么分片丢失还能恢复

! Minio: 数学,可以使用剩余分片推理出丢失分片的信息;而Elasticsearch是通过主副分片

! 也就是说对于Elasticsearch这种,如果主分片和副分片同时丢失,数据丢失;对于Minio,若分片丢失数超过纠错码容量阈值,永久丢失(就像4个分片,相当于四个变量,纠错码比作是两个方程,对于则由任意两个变量就可以解出剩下的变量)

! 那也就是说,对于这种集群部署,数据配合的实现方式是多样的,要根据需求来设定

? 进入正题,为什么Elasticsearch比正常的检索快

! 倒排索引: 输入关键词->在词典中定位词项(哈希或二分)->获取到倒排列表->返回匹配文档 O(1) [类比翻书先找目录];分布式并行计算;列式存储+缓存...

? 啥叫列式存储,解释一下

? 也就是说Mysql这种关系型数据库是行式存储,Elasticsearch是列式存储吗

! Mysql只是行式存储( 专注于强一致的事务处理),es只是在特定情况下才采用列式存储存储,其实是行式(_source->实现CRUD)和列式(Doc Values->排序聚合)混合状态,并使用倒排索引加速全文搜索

? _source字段和Doc Values在es里代表了什么东西

! _source字段: 原始json文档(完整数据行);Doc Values: 单个字段的列数据行(分析引擎)

? 讲讲es怎么使用

! 安装->索引管理->数据操作->搜索聚合->高级功能 这里可以具体可以参照网上

 1. 安装:docker run -d -p 9200:9200 elasticsearch:8.5.1

 2. 创建索引:PUT /products { "mappings": { ... } }

 3. 插入数据:POST /products/_doc/1 { "title": "手机" }

 4. 搜索:GET /products/_search { "query": { "match": { "title": "手机" } } }

? 你提到的这些操作都是基于http请求实现的吗

! 对,主要通过RESTful Http Api

? 我要一个项目中(Spring Boot)集成es,需要做哪些工作

! 依赖引入->Bean配置(客户端)->CUDR(JSON数据)

 1. 引入依赖:elasticsearch-rest-high-level-client

 2. 配置客户端Bean:连接地址、认证信息

 3. 实现CRUD:通过RestHighLevelClient操作索引和数据。

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

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

相关文章

JavaScript使用toFixed保留一位小数的踩坑记录:TypeError: xxx.toFixed is not a function

JavaScript的toFixed函数是用于将一个数字格式化为指定的小数位数的字符串。其语法如下: numObj.toFixed([digits]) 其中,numObj是需要格式化的数字,digits是保留的小数位数。digits参数是一个可选参数,默认值为0,表示不保留小数位。 计算后需要保留一位小数,于是使用…

网络仿真工具Core环境搭建

目录 安装依赖包 源码下载 Core安装 FAQ 下载源码TLS出错误 问题 解决方案 找不到dbus-launch 问题 解决方案 安装依赖包 调用以下命令安装依赖包 apt-get install -y ca-certificates git sudo wget tzdata libpcap-dev libpcre3-dev \ libprotobuf-dev libxml2-de…

深入 Rollup:从入门到精通(三)Rollup CLI命令行实战

准备阶段:初始化项目 初始化项目,这里使用的是pnpm,也可以使用yarn或者npm # npm npm init -y # yarn yarn init -y # pnpm pnpm init安装rollup # npm npm install rollup -D # yarn yarn add rollup -D # pnpm pnpm install rollup -D在…

volatile之四类内存屏障指令 内存屏障 面试重点 底层源码

目录 volatile 两大特性 可见性 有序性 总结 什么是内存屏障 四个 CPU 指令 四大屏障 重排 重排的类型 为什么会有重排? 线程中的重排和可见性问题 如何防止重排引发的问题? 总结 happens-before 和 volatile 变量规则 内存屏障指令 写操作…

力扣算法题——11.盛最多水的容器

目录 💕1.题目 💕2.解析思路 本题思路总览 借助双指针探索规律 从规律到代码实现的转化 双指针的具体实现 代码整体流程 💕3.代码实现 💕4.完结 二十七步也能走完逆流河吗 💕1.题目 💕2.解析思路…

RK3568 adb使用

文章目录 一、adb介绍**ADB 主要功能****常用 ADB 命令****如何使用 ADB****总结** 二、Linux下载adb**方法 1:使用包管理器(适用于 Ubuntu/Debian 系统)****方法 2:通过 Snap 安装(适用于支持 Snap 的系统&#xff09…

【ES实战】治理项之索引模板相关治理

索引模板治理 文章目录 索引模板治理问题现象分析思路操作步骤问题程序化方案索引与索引模板增加分片数校验管理 彩蛋如何查询Flink on Yarn 模式下的Task Manager日志相关配置查询已停止的Flink任务查询未停止的Flink任务 问题现象 在集群索引新建时,索引的分片比…

网络工程师 (2)计算机体系结构

一、冯诺依曼体系结构 (一)简介 冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。数学…

Android Studio:视图绑定的岁月变迁(2/100)

一、博文导读 本文是基于Android Studio真实项目,通过解析源码了解真实应用场景,写文的视角和读者是同步的,想到看到写到,没有上帝视角。 前期回顾,本文是第二期。 private Unbinder mUnbinder; 只是声明了一个 接口…

LeetCode | 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1…

低代码系统-产品架构案例介绍、得帆云(八)

产品名称 得帆云DeCode低代码平台-私有化 得帆云DeMDM主数据管理平台 得帆云DeCode低代码平台-公有云 得帆云DePortal企业门户 得帆云DeFusion融合集成平台 得帆云DeHoop数据中台 名词 概念 云原生 指自己搭建的运维平台,区别于阿里云、腾讯云 Dehoop 指…

使用ensp进行ppp协议综合实验

实验拓扑 实验划分 AR1的Serial3/0/0接口:192.168.1.1/24; AR2的Serial3/0/0接口:192.168.1.2/24; AR2的Serial3/0/1和4/0/0的聚合接口:192.168.2.2/24; AR3的Serial3/0/0和3/0/1的聚合接口:192…

【Python・机器学习】多元回归模型(原理及代码)

前言 自学笔记,分享给语言学/语言教育学方向的,但对语言数据处理感兴趣但是尚未入门,却需要在论文中用到的小伙伴,欢迎大佬们补充或绕道。ps:本文最少限度涉及公式讲解(文科生小白友好体质)&am…

unity免费资源2025-1-26

https://assetstore.unity.com/packages/tools/animation/motion-warping-climb-interact-270046 兑换码KINEMATION2025

Kitchen Racks 2

Kitchen Racks 2 吸盘置物架 Kitchen Racks-CSDN博客

ESMC-600M蛋白质语言模型本地部署攻略

前言 之前介绍了ESMC-6B模型的网络接口调用方法,但申请token比较慢,有网友问能不能出一个本地部署ESMC小模型的攻略,遂有本文。 其实本地部署并不复杂,官方github上面也比较清楚了。 操作过程 环境配置:CUDA 12.1、…

JAVA设计模式:依赖倒转原则(DIP)在Spring框架中的实践体现

文章目录 一、DIP原则深度解析1.1 核心定义1.2 现实比喻 二、Spring中的DIP实现机制2.1 传统实现 vs Spring实现对比 三、Spring中DIP的完整示例3.1 领域模型定义3.2 具体实现3.3 高层业务类3.4 配置类 四、Spring实现DIP的关键技术4.1 依赖注入方式对比4.2 自动装配注解 五、D…

JVM栈溢出线上环境排查

#查看当前Linux系统进程ID、线程ID、CPU占用率(-eo后面跟想要展示的列) ps H -eo pid,tid,%cpups H -eo pid,tid,%cpu |grep tid #使用java jstack 查看进程id下所有线程id的情况 jstack pid 案例2 通过jstack 排查死锁问题 #启动java代码 jstack 进…

Langchain+讯飞星火大模型Spark Max调用

1、安装langchain #安装langchain环境 pip install langchain0.3.3 openai -i https://mirrors.aliyun.com/pypi/simple #灵积模型服务 pip install dashscope -i https://mirrors.aliyun.com/pypi/simple #安装第三方集成,就是各种大语言模型 pip install langchain-comm…

Gradle配置指南:深入解析settings.gradle.kts(Kotlin DSL版)

文章目录 Gradle配置指南:深入解析settings.gradle.kts(Kotlin DSL版)settings.gradle.kts 基础配置选项单项目配置多项目配置 高级配置选项插件管理(Plugin Management)基础配置模板案例:Android项目标准配…