Elasticsearch 2025/3/7

高性能分布式搜索引擎。

数据库模糊搜索比较慢,但用搜索引擎快多了。

下面是一些搜索引擎排名

Lucene是一个Java语言的搜索引擎类库(一个工具包),apache公司的顶级项目。

优势:易扩展、高性能(基于倒排索引)
elasticsearch优势:

支持分布式,可水平扩展

提供Restful接口,可被任何语言调用

elasticsearch随着技术发展越来越完善,已经不是一个孤立的技术了,有一套完整的技术栈,简称ELK(kibana、Logstash、Beats),被广泛应用在日志数据分析、实时监控等领域。

安装ES

推荐Docker命令一键安装。

安装Kibana

一个图形界面的工具,会帮助我们连接ES,提供图形化的操作,还能自动补全。

推荐Docker命令一键安装。

Kibana提供了一个工具Dev tool,它可以帮助我们向ES发送HTTP请求,而且自带提示!!!

倒排索引

传统MySQL关系数据库只会给文档建立id索引。

而elasticsearch采用倒排索引:不仅会给文档建立id索引,还会给拆开的词条建立索引。

  • 文档:每条数据就是一个文档
  • 词条:文档按照语义分成的词语

会给词条建一个索引,将来根据词条来检索速度会非常快。

以下图为例,其实我们搜了两次,第一次拿词条来词条列表找,第二次拿着找到的文档id到文档列表里找文档。而传统关系数据库,只能全表扫描。

正向索引先去找文档,看文档里是否包含词条。

倒排索引先去找词条,得到文档id,再去找文档。(要经历两次检索)

IK分词器

英文分词很简单,因为单词间有空格。仲文分词必须按语义进行分析。

把这个插件(ik)放到插件目录里。

analyzer可以中文分词的:ik_smart、ik_max_word

IK分词器允许词典扩展。

ES核心概念

叫索引可能会混淆,我们通常把他理解成索引库。因为MySQL里给id加的那个也叫索引。索引和数据库里的表table的概念有点接近。要保证json文档他们的结构一致、数据类型一致,叫做映射。

下图是ES和MySQL数据库一些概念的对比👇

Mapping映射属性

Mapping映射类似于建表

keyword不可拆分的词

索引库操作

keyword不可拆,text可拆

在elasticsearch里,不允许对索引库做修改操作(指不能对已有的索引库字段做修改,但允许添加新的字段)。

文档操作

上节课学完索引库的各种操作,相当于在MySQL里去创建表,表有了之后,我们要学着操作数据。在索引库里,我们操作的是文档。

文档CRUD

完全符合Restful风格

全量修改,改的话全部都要改。

增量/局部修改,修改指定的。

批量处理

一个一个文档处理效率太低,这次学习批量处理。

JavaRestClient

ES给我们提供的java客户端,JavaRestClient。

这套客户端就是帮我们向restful接口发请求的。

客户端初始化

步骤:引依赖->对SpringBoot原有默认的ES版本进行覆盖->初始化RestHighLevelClient

例:

商品表Mapping映射

上节课已经完成es的java客户端的初始化,之后的几节课我们将学习如何利用这个客户端实现索引库及文档的各种操作。

创建商品索引库首先要确定商品的Mapping映射。

索引库操作

文档操作

上节课学习es的java客户端操作索引库的各种API,并创建了一个索引库。有了索引库我们就可以向里面写入文档,进行文档操作了。

source 源

request.source请求参数里的数据直接用数据库里的。但是数据库里的和索引库的字段不完全一样,我们要怎样保证他们一样呢?

首先定义一个实体,这个索引要和索引库的mapping映射结构一致。

直接复制一份po,然后把其中不需要的属性删掉。(简单无需技术含量)

根据id查数据库,查到数据库数据转化为文档数据,用到糊涂工具包BeanUtil.copyProperties(item,ItemDoc.class)拷贝数据。

得到的文档数据放到source方法请求参数必须是JSON,用工具类JSONUtil转换

新增文档操作如上,接下来我们学习文档其他增删改查的API。

发送请求结果获取到的request对象里面是完整的Json数据

而解析结果就是获取到的request对象里的source

批处理

相关推荐
Elasticsearch29 分钟前
开发者关系新闻通讯 — 2026 年 6 月
elasticsearch
峥嵘life42 分钟前
Repo 常用操作手册
大数据·elasticsearch·搜索引擎
ZeekerLin1 小时前
AI 原生开发落地路线图:从个人提效到团队体系化
大数据·人工智能
科技圈快迅2 小时前
解决续费痛点,轻量化AI订阅替代方案深度解读
大数据·人工智能
山峰哥2 小时前
‌Explain实战:打开数据库执行计划的黑盒‌
大数据·服务器·数据库·sql·深度优先·宽度优先
A hao2 小时前
HDR LED显示屏工作原理:高动态范围显示技术解析
大数据·图像处理·人工智能
回眸&啤酒鸭3 小时前
【回眸】搞钱灵感——AI 数字人口播博主自动化运营
大数据·人工智能·自动化
AC赳赳老秦3 小时前
Excel 动态仪表盘制作:用 OpenClaw 自动处理数据、生成交互式图表并实时更新仪表盘
大数据·服务器·后端·测试用例·excel·deepseek·openclaw
TTBIGDATA12 小时前
【Ambari Plus】14.Hue 安装
大数据·hadoop·ambari·hdp·hue·cdh·bigtop
AI创界者12 小时前
零基础上手!ComfyUI + LTX-2.3 图生视频完整工作流搭建与调优指南(附避坑细节)
大数据·人工智能