人格分裂(交互问答)-小白想懂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操作索引和数据。

相关推荐
秋野酱1 小时前
基于javaweb的SpringBoot自习室预约系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端
呆萌很1 小时前
基于 Spring Boot 瑞吉外卖系统开发(十五)
spring boot
weloveut1 小时前
西门子WinCC Unified PC的GraphQL使用手册
后端·python·graphql
End9281 小时前
Spark之搭建Yarn模式
大数据·分布式·spark
我爱写代码?1 小时前
Spark 集群配置、启动与监控指南
大数据·开发语言·jvm·spark·mapreduce
TDengine (老段)1 小时前
什么是物联网 IoT 平台?
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
青云交2 小时前
Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网海量设备数据长期存储中的应用优化(248)
java·大数据·工业互联网·分布式存储·冷热数据管理·hbase 优化·kudu 应用
会飞的架狗师2 小时前
【SpringBoot实战指南】集成Easy ES
spring boot·elasticsearch
老李不敲代码2 小时前
榕壹云打车系统:基于Spring Boot+MySQL+UniApp的开源网约车解决方案
spring boot·mysql·微信小程序·uni-app·软件需求
艾醒(AiXing-w)2 小时前
探索大语言模型(LLM):国产大模型DeepSeek vs Qwen,谁才是AI模型的未来?
大数据·人工智能·语言模型