黑马es学习

news2024/11/15 17:35:44

es

  • 0. 基础概念
    • 0.1 倒排索引
    • 0.2 文档、索引
    • 0.3 与mysql对比
  • 1 基本操作
    • 1.1 mapping 索引库操作
    • 1.2 单个文档CRUD
  • 3. DSL查询
    • 3.1 查询所有
    • 3.2 全文检索
    • 3.3 精确查询
    • 3.4 复合查询-相关性得分
    • 3.5 分页
    • 3.6 高亮
    • 3.7 总结
  • 2. RestClient
  • 4. aggs聚合
    • 4.1 bucket(分桶)聚合
    • 4.2 metrics聚合
  • 5. mysql与es数据同步
  • 6. es集群
  • extra:es集群数据去重

黑马视频

官方使用手册

java client


0. 基础概念

es本质:一个基于Lucence开发出来的分布式搜索引擎

在这里插入图片描述

0.1 倒排索引

在这里插入图片描述

创建倒排索引后给词条创建索引,总计进行了两次查询

0.2 文档、索引

文档:一条数据记录
索引:类型相同的文档的集合

在这里插入图片描述

0.3 与mysql对比

交易等一致性要求高的mysql做
大范围搜索es做

1 基本操作

1.1 mapping 索引库操作

在这里插入图片描述
举例:注意object嵌套关系

在这里插入图片描述

禁止修改索引库,但是可以添加新字段

1.2 单个文档CRUD

文档查询:

在这里插入图片描述
_source字段下是查询到的原始文档

文档修改:
全量修改:旧的直接删除,新增改后的文档
增量修改:在旧的上面修改

在这里插入图片描述

3. DSL查询

dsl常见查询分类:

在这里插入图片描述

3.1 查询所有

在这里插入图片描述

3.2 全文检索

在这里插入图片描述
muti_match的方式能够额外指定针对哪些字段进行查询(任意一个字段包含即可)

3.3 精确查询

值是确定的,不可分割,不可分词,完全匹配

在这里插入图片描述

3.4 复合查询-相关性得分

相关性得分算法:(第三种 default)

es 自带的 query score:
在这里插入图片描述

自定义function score函数:

在这里插入图片描述

自定义score函数时主要确定三个部分:

  1. 哪些文档将进行加权
  2. 算分函数function score如何定义
  3. function score怎么与原始得分query score(BM25)进行加权

demo:

在这里插入图片描述

3.5 分页

深度分页问题:

在这里插入图片描述
from+size超过1w会直接报错,如果非要查一万条,不太现实,实际生产应用中会从业务层面避免查询1w条(从业务上拒绝),比如百度就是默认最多查70页,每页显示10条数据

在这里插入图片描述

3.6 高亮

高亮的结果解析是与_source同级的,需要额外注意:

在这里插入图片描述

3.7 总结

在这里插入图片描述

2. RestClient

将dsl语句对应到Java

在这里插入图片描述
在这里插入图片描述
上图中涉及了两个核心api:
source.query()/source()等:
在这里插入图片描述

QueryBuilders.各种查询query:
在这里插入图片描述

解析查询响应结果:

在这里插入图片描述

在这里插入图片描述

常见查询:

全文检索查询:
在这里插入图片描述
精确查询:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
聚合:

在这里插入图片描述

4. aggs聚合

聚合操作与query同级,用于对文档进行统计、分析、计算(min/max/avg…)

常见聚合方式:

在这里插入图片描述

4.1 bucket(分桶)聚合

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
默认按照doc_count降序排序,如若修改排序方式:

在这里插入图片描述

在这里插入图片描述

4.2 metrics聚合

在这里插入图片描述
红框:

聚合名称:scoreAgg
聚合类型:stats
聚合字段:score

5. mysql与es数据同步

在这里插入图片描述

方案一缺点:业务之间耦合度强,调用耗时

在这里插入图片描述
方案二缺点:依赖mq的可靠性

在这里插入图片描述
在这里插入图片描述

demo:基于mq的实现方式

mq的消息模式:其中交换机用于将消息路由

在这里插入图片描述

定义模式:
在这里插入图片描述
然后定义绑定关系:将某个队列绑定到指定交换机、用哪个routingKey:

在这里插入图片描述

消息发送(两种消息:增改(公用一个key)和删(另一个key)):

在这里插入图片描述
在这里插入图片描述

消息监听与消费:

定义监听:
在这里插入图片描述

具体实现:

在这里插入图片描述
在这里插入图片描述

6. es集群

extra:es集群数据去重

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

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

相关文章

C++ | Leetcode C++题解之第135题分发糖果

题目&#xff1a; 题解&#xff1a; class Solution { public:int candy(vector<int>& ratings) {int n ratings.size();int ret 1;int inc 1, dec 0, pre 1;for (int i 1; i < n; i) {if (ratings[i] > ratings[i - 1]) {dec 0;pre ratings[i] rati…

MySQL-数据处理(1)

029-数据处理函数之获取字符串长度 select length(我是Cupid); select char_length(我是Cupid);concat (concatenate) select concat(cu, pid, so, handsome);030-去除字符串前后空白-trim select trim( a b c );select trim(leading 0 from 000110); select t…

【C语言】指针(4)

一、回顾 在这之前&#xff0c;我们学习了很多关于指针的内容&#xff0c;我们先在这里简单的回顾一下。 1、一级指针 int* p; -- 整形指针-指向整形的指针 char* p; ... void* p;... ... 2、二级指针 int** p; char** p; ... 3、数组指针 -- 指向数组的指针 int (*p)[ ]…

Docker Swarm集群部署管理

Docker Swarm集群管理 文章目录 Docker Swarm集群管理资源列表基础环境一、安装Docker二、部署Docker Swarm集群2.1、创建Docker Swarm集群2.2、添加Worker节点到Swarm集群2.3、查看Swarm集群中Node节点的详细状态信息 三、Docker Swarm管理3.1、案例概述3.2、Docker Swarm中的…

拓扑排序-java

主要通过宽度优先搜索&#xff08;BFS&#xff09;来实现有向无环图的拓扑序列&#xff0c;邻接表存储图。数组模拟单链表、队列&#xff0c;实现BFS基本操作。 文章目录 前言 一、有向图的拓扑序列 二、算法思路 1.拓扑序列 2.算法思路 三、使用步骤 1.代码如下&#xff08;示…

【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

【西瓜书】大题

1.线性回归 思路&#xff1a;ywxb&#xff0c;w为一维数组&#xff0c;求均方误差MSE&#xff0c;对w和b分别求偏导为0得到关于w和b的闭式求解。预测第十年的代入ywxb求解即可。 2.查准率、查全率 思路&#xff1a;先计算每个算法测试结果的混淆矩阵&#xff0c;再根据混淆矩阵…

Matlab|混合策略改进的蝴蝶优化算法

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要对蝴蝶算法&#xff08;BOA&#xff09;进行改进&#xff0c;参考文献《基于改进蝴蝶优化算法的冗余机器人逆运动学求解》&#xff0c;有如下改进策略&#xff1a; 改进1&#xff1a;采用反向学习策…

RK3568平台(显示篇)FrameBuffer 应用编程

一.FrameBuffer介绍 FrameBuffer&#xff08;帧缓冲器&#xff09;是一种计算机图形学概念&#xff0c;用于在显示器上显示图形和文本。在 计算机显示系统中&#xff0c;FrameBuffer 可以看作是显存的一个抽象概念&#xff0c;用于存储显示屏幕上显示 的像素点的颜色和位置信息…

ElementUi el-tree动态加载节点数据 load方法触发机制

需求背景&#xff1a;需要根据点击后获取的数据动态渲染一个 el-tree&#xff0c;同时渲染出来的 el-tree&#xff0c;需要点击节点时才能获取该节点的层数的获取&#xff0c;如图所示&#xff0c;我需要点击“组”节点才能渲染“设备列表”树&#xff0c;同时“设备列表”树的…

Vue16-绑定class样式

一、vue绑定class样式 1-1、需求一&#xff1a;字符串写法 vue实现class样式绑定 1-2、需求二 点击div&#xff0c;随机切换样式。 math.random()&#xff1a;随机数的范围[0, 1) 1-3、需求三&#xff1a;数组写法 样式的追加 1-4、需求四 &#xff1a;对象写法 二、vue绑定…

浅解Reids持久化

Reids持久化 RDB redis的存储方式&#xff1a; rdb文件都是二进制&#xff0c;很小&#xff0c;里面存的是数据 实现方式 redis-cli链接到redis服务端 使用save命令 注&#xff1a;不推荐 因为save命令是直接写到磁盘里面&#xff0c;速度特别慢&#xff0c;一般都是redis…

MySQl基础----Linux下搭建mysql软件及登录和基本使用(附实操图超简单一看就会)

绪论​ 涓滴之水可磨损大石&#xff0c;不是由于他力量强大&#xff0c;而是由于昼夜不舍地滴坠。 只有勤奋不懈地努力&#xff0c;才能够获得那些技巧。 ——贝多芬。新开MySQL篇章&#xff0c;本章非常基础包括如何在Linux上搭建&#xff08;当然上面的SQL语句你在其他能执行…

UnityXR Interaction Toolkit 如何使用XRHand手部识别

前言 Unity的XR Interaction Toolkit是一个强大的框架,允许开发者快速构建沉浸式的VR和AR体验。随着虚拟现实技术的发展,手部追踪成为了提升用户交互体验的关键技术之一。 本文将介绍如何在Unity中使用XR Interaction Toolkit实现手部识别功能。 准备工作 在开始之前,请…

Chat-TTS:windows本地部署实践【有手就行】

最近Chat-TTS模型很火&#xff0c;生成的语音以假乱真&#xff0c;几乎听不出AI的味道。我自己在本地部署玩了一下&#xff0c;记录一下其中遇到的问题。 环境&#xff1a; 系统&#xff1a;windows 11 GPU&#xff1a; Nvidia 4060 Cuda&#xff1a;12.1&#xff08;建议安…

后方碰撞预警系统技术规范(简化版)

后方碰撞预警系统技术规范(简化版) 1 系统概述2 预警区域3 预警目标4 功能需求功能条件5 显示需求6 指标需求1 系统概述 后方碰撞预警系统RCW(Rear Collision Warning)是在后方车辆即将与自车发生碰撞之前,激活危险警告灯以较高频率闪烁,从而吸引后方驾驶员的注意力,避免…

PG 数据库常用参数调整

1.shard_buffers Postgresql使用自己的缓冲区,也使用操作系统缓冲区。这意味着数据存储在内存中两次,首先是 Postgresql缓冲区,然后是操作系统缓冲区。 与其他数据库不同, Postgresql不提供直接IO。这称为双缓冲&#xff08;就是磁盘中的时候读的时候先放在数据库的缓冲区&am…

【Python教程】3-控制流、循环结构与简单字符串操作

在整理自己的笔记的时候发现了当年学习python时候整理的笔记&#xff0c;稍微整理一下&#xff0c;分享出来&#xff0c;方便记录和查看吧。个人觉得如果想简单了解一名语言或者技术&#xff0c;最简单的方式就是通过菜鸟教程去学习一下。今后会从python开始重新更新&#xff0…

Vue17-条件渲染

一、使用v-show属性做条件渲染 控制元素的显示和隐藏 v-show里面也能是表达式&#xff0c;只要表达式的值是boolean就行。 或者 当时结构还在&#xff1a; 二、使用v-if属性做条件渲染 结构也不在了 三、示例 方式一&#xff1a; 方式二&#xff1a; 当元素有很高的切换频率&am…

【web本地存储】storage事件,StorageEvent对象介绍

storage事件 Web Storage API 内建了一套事件通知机制&#xff0c;当存储区域的内容发生改变&#xff08;包括增加、修改、删除数据&#xff09;时&#xff0c;就会自动触发storage事件&#xff0c;并把它发送给所有感兴趣的监听者&#xff0c;因此&#xff0c;如果需要跟踪存…