- 博客(70)
- 资源 (1)
- 收藏
- 关注
原创 掌握 ElasticSearch 聚合查询:Aggregations 入门与实战
本文深入浅出地介绍了 Elasticsearch 7.10 中的聚合查询(Aggregations)基础知识。聚合查询是 Elasticsearch 中进行数据分析的强大工具,类似于 SQL 中的 GROUP BY 和聚合函数,但功能更强大、更灵活。文章首先介绍了聚合查询的基本概念、语法结构和三种核心聚合类型:指标聚合(Metrics Aggregations)、桶聚合(Bucket Aggregations)和管道聚合(Pipeline Aggregations)。
2025-02-28 00:10:42
947
原创 掌握 ElasticSearch 组合查询:Bool Query 详解与实践
为了应对这些复杂的查询需求,Elasticsearch 提供了 **`bool` 查询**。`bool` 查询就像一个强大的工具箱,它允许你将多个查询条件组合在一起,形成更复杂的查询逻辑。你可以将 `bool` 查询看作是乐高积木,通过组合不同的积木块(查询子句),你可以搭建出各种各样的结构(查询逻辑)。
2025-02-23 16:45:20
1287
原创 掌握 ElasticSearch 精准查询:Term Query 与 Filter 详解
Elasticsearch 作为一款强大的搜索引擎,不仅擅长全文检索,也提供了强大的精准查询功能。在本文中,我们将深入探讨两种核心的精准查询方式:**Term Query** 和 **Filter**。
2025-02-23 12:49:22
1363
原创 掌握 ElasticSearch 四种match查询的原理与应用
本文将重点介绍 Elasticsearch 7.10 版本中四种核心的全文检索查询:`match`、`match_all`、`multi_match` 和 `match_phrase`。通过本文,你将掌握这些查询的基本概念、语法和使用场景,并通过丰富的示例学会如何在实践中应用它们。
2025-02-20 23:40:53
765
原创 掌握 ElasticSearch的 _source 过滤
Elasticsearch 是一款强大的分布式搜索和分析引擎,其核心功能之一就是 `_search` API。`_search` API 允许用户执行复杂的查询,并从 Elasticsearch 索引中检索匹配的文档。在搜索结果中,有一个名为 `_source` 的特殊字段,它包含了索引文档时的原始 JSON 数据。
2025-02-19 22:57:37
958
原创 MySQL 索引失效案例:字符集不匹配的隐蔽影响
在 MySQL 数据库世界里,索引失效往往是性能问题的罪魁祸首。你是否曾遇到过这样的情况:明明加了索引,查询却慢如蜗牛?你是否曾以为小表查询就一定高效?本文将揭示一个真实的案例,一个容易被忽视的“隐形杀手”—— **字符集不匹配**,它如何悄无声息地破坏你的索引,让你的查询在小表上也能崩溃。更令人惊讶的是,`LIMIT` 子句竟然在某种程度上“掩盖”了这个问题的严重性,直到 `ORDER BY` 的出现,才让真相大白。
2025-02-12 22:57:35
642
原创 Stream API 进阶:筛选、映射、查找、归约
详细讲解流的各种实用操作:**筛选**、**切片**、**映射**、**查找**、**匹配**和**归约**。掌握这些高级操作将使你能够更加游刃有余地处理各种数据处理任务。通过丰富的代码示例,你将掌握如何利用这些操作高效处理数据,并体会到 Stream API 的强大之处。
2025-02-08 14:50:15
1028
原创 深入理解流(Streams)—— 声明式数据处理的艺术
Java 8 的流(Streams)是一种强大而优雅的数据处理工具。它通过声明式、函数式的风格,使代码更简洁、易读、高效。
2025-02-07 23:04:31
738
原创 Java 8 Lambda表达式详解:从入门到实践
Lambda表达式的引入,是Java语言发展的一个重要里程碑。它不仅使Java代码更简洁、更易读,还为Java带来了函数式编程的强大能力。Lambda表达式与Stream API(后续章节将详细介绍)的结合,更是开启了Java集合处理的新篇章。
2025-02-07 16:54:10
1623
原创 解密 Java Lambda 表达式中的 “effectively final“ 陷阱
本文深入探讨了 Java Lambda 表达式中 **"Variable used in lambda expression should be final or effectively final"** 错误的本质,全面解析了 **effectively final** 概念。 通过实例、变量捕获分析、`final` 与 effectively final 对比,以及对数据一致性和线程安全的理解,我们揭示了 effectively final 概念的重要性。
2025-02-06 23:03:14
1062
原创 Java行为参数化:从啰嗦到简洁的代码进化
行为参数化是一种强大的编程思想,它可以让你编写出更灵活、更可复用、更易于维护的代码。Java 8 的 Lambda 表达式为行为参数化提供了简洁、优雅的语法支持,大大提高了开发效率。
2025-02-06 20:16:09
547
原创 Vue2 项目中使用 Swiper
Swiper 是一个功能强大的轮播图库,支持触摸滑动、分页器、导航按钮等功能。本文将详细介绍如何在Vue2项目中集成Swiper 5,并通过watch和nextTick确保Swiper在数据加载完成后正确初始化。
2025-02-04 23:15:49
1044
原创 Vue2 项目中使用 mockjs
Mock.js 是一款非常实用的前端数据模拟工具,它可以帮助我们在 Vue2 项目中模拟后端接口数据,方便前端开发和测试。本文将详细介绍如何在 Vue2 项目中使用 Mock.js,从安装到使用,一步步带你掌握。
2025-01-26 10:13:17
718
原创 防抖与节流:优化高频事件的两种利器
防抖(Debounce)和节流(Throttle)是优化高频事件的两种关键技术。防抖通过延迟执行回调,确保在事件停止触发后才执行,适用于搜索框输入、窗口缩放等场景;节流通过固定时间间隔限制回调执行频率,适用于按钮点击、滚动加载等场景。本文通过输入框和计数器的示例,结合 Lodash 库的 _.debounce() 和 _.throttle() 方法,演示了如何实现防抖与节流。这两种技术能有效减少不必要的计算和请求,提升页面性能和用户体验,是前端开发中不可或缺的优化手段。
2025-01-24 17:37:10
789
原创 Vue2 项目二次封装Axios
在现代前端开发中,HTTP请求管理是构建健壮应用的核心能力之一。Axios作为目前最流行的HTTP客户端库,其灵活性和可扩展性为开发者提供了强大的基础能力。
2025-01-23 23:56:10
976
原创 Vue编程式路由跳转多次执行报错
在使用 Vue.js 的 `vue-router` 进行编程式路由跳转时,如果多次执行跳转到当前路由(参数不变),会抛出 `NavigationDuplicated` 的警告错误。这种错误通常发生在用户频繁点击按钮或执行某些操作时,导致多次触发相同的路由跳转。
2025-01-23 17:58:28
1161
原创 Vue2 项目目录说明与配置
本文档旨在详细说明 Vue2 项目的目录结构及其各个文件和文件夹的作用,以及一些项目的基本配置。通过了解这些内容,我们将能够更好地管理和维护 Vue2 项目。
2025-01-23 11:18:06
879
原创 Python基础——集合的应用与操作
集合(set)是一种独特的、无序的数据结构,在许多编程任务中发挥着重要作用。集合的特点是其元素的唯一性,这使得它非常适合用于数据去重、集合运算等场景。在本篇文章中,我们将详细介绍Python中的集合,包括其定义、基本操作、集合运算、比较运算以及不可变集合frozenset的使用。集合是无序且元素唯一的集合体。我们可以使用大括号{}或内置函数set()来创建集合。在Python中,空的大括号{}通常表示一个空字典,因此要创建一个空集合,需要使用set()函数。
2024-07-31 22:42:30
1796
原创 Python基础——元组的应用与操作
在Python编程中,元组是一种常用的数据结构,与列表类似,它可以存储多个元素,但不同的是,元组是不可变的。这种特性使得元组在某些需要确保数据不可变的场景下,比列表更适合使用。本篇文章将详细介绍元组的定义、操作,以及元组在实际应用中的优势和场景。元组是一种有序的数据结构,可以存储多个元素。这些元素可以是不同类型的,类似于列表。元组使用圆括号()定义,元素之间用逗号分隔。
2024-07-31 22:41:37
662
原创 Python基础——列表的应用与操作
在Python编程中,列表是最常用的数据结构之一。它不仅可以存储多种类型的元素,还提供了丰富的操作方法。列表的灵活性和易用性使得它成为处理数据的首选结构之一。本篇文章将详细介绍列表的定义、基础操作、进阶操作以及实际应用场景。列表是一种有序的数据结构,它可以包含多个元素,这些元素可以是任何数据类型。定义列表非常简单,只需使用方括号[]将元素包围,并用逗号分隔每个元素。# 定义一个包含整数的列表# 定义一个包含字符串的列表fruits = ["苹果", "香蕉", "橘子"]# 定义一个混合类型的列表。
2024-07-30 16:01:31
534
原创 Python基础——循环结构
在编写程序时,控制流结构至关重要,它决定了程序的执行路径。Python中的控制流结构主要包括顺序结构、分支结构和循环结构。本节将详细介绍循环结构,帮助你更好地理解如何控制程序的重复执行。在本节中,我们详细介绍了Python中的while循环和for循环,以及如何使用break和continue语句控制循环的执行。我们还讨论了如何使用range函数生成数字序列,并结合for循环执行重复性任务。循环结构是编写高效和动态程序的关键,可以大大简化需要重复执行的任务。
2024-07-29 09:49:57
377
原创 Python基础——分支结构
在编写程序时,控制流结构至关重要,它决定了程序的执行路径。Python中的控制流结构主要包括顺序结构、分支结构和循环结构。本节将详细介绍顺序结构和分支结构,帮助你更好地理解如何控制程序的执行顺序。在本节中,我们详细介绍了Python中的顺序结构和各种分支结构。顺序结构是程序执行的基础,而分支结构则为程序提供了决策能力,使其能够根据不同的条件采取不同的行动。特别是Python 3.10引入的match语句,为处理多种模式匹配提供了更简洁和强大的工具。在使用分支结构时,应确保条件逻辑清晰,避免条件重复或遗漏。
2024-07-29 09:49:13
2370
原创 Python基础——运算符
在前几节课中,我们已经了解了Python中的变量和数据类型。接下来,我们将深入探讨如何使用这些变量进行运算。今天的重点是Python中的运算符。运算符是编程语言中用于执行操作的特殊符号。它们允许我们对变量和数据进行各种操作,如加减乘除、比较大小、逻辑判断等。理解和掌握运算符的使用是编写有效Python代码的基础。通过本篇文章,我们了解了Python中的各种运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、身份运算符、成员运算符和位运算符,并举了一些实际应用的例子。
2024-07-28 09:21:16
1050
原创 Python基础——变量和数据类型
今天我们开始学习Python编程的基础——变量和数据类型。这些概念是学习编程的第一步,也是非常重要的一步。无论是在开发中还是面试中,理解这些基本概念都是必不可少的。在这篇文章中,我会用简单易懂的语言来解释什么是变量、什么是数据类型,并提供一些例子。如果有任何不清楚的地方,欢迎大家在评论中提出~在编写程序时,我们经常需要保存和操作数据。这些数据需要存储在计算机的内存中。为了方便地管理和操作这些数据,我们使用变量来存储它们。变量可以看作是数据的标签,我们通过给数据起名字来方便地引用和修改它们。
2024-07-28 09:20:47
1218
原创 Python基础——第一个Python程序
Python基础知识,本文介绍了python的相关开发工具,重点介绍了PyCharm的安装与使用,并在PyCharm上编写和运行了第一个Python程序。
2024-07-27 10:56:15
403
原创 第四讲:Bean的生命周期
简单的描述并测试Bean的生命周期(细节会在后续文章中单独讲解),并加入一些BeanPostPorcessor处理测试。
2023-08-22 00:40:48
271
原创 第三讲:ApplicationContext的实现
在上一篇文章中,我们使用的一直是DefaultListableBeanFactory,他只是一个Bean工厂,不会自动运行,所有的功能都需要我们手动去调用。接下来,我们来看几个ApplicationContext的实现类。
2023-08-20 22:53:37
930
1
原创 第二讲:BeanFactory的实现
BeanFactory的特点:不会主动调用BeanFactory后置处理器(对应本文第4点)不会主动添加Bean后置处理器(对应本文第4、5点)不会主动初始化单例(对应本文第6点)不会解析beanFactory,不会解析${}和#{}
2023-08-20 22:43:53
437
原创 第一讲:BeanFactory和ApplicationContext接口
BeanFactory是ApplicationContext的父接口,是真正的Spring核心容器,主要的ApplicationContext实现都【组合】了他的功能。BeanFactory和ApplicationContext并不仅仅是简单的接口继承关系,ApplicationContext组合并扩展了BeanFactory的功能。
2023-08-20 22:34:03
382
原创 对象创建的几个步骤
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2022-07-28 16:11:20
1649
原创 重写equals方法时为什么需要重写hashCode方法
重写equals方法时为什么需要重写hashCode方法如果只重写了equals方法,而不重写hashCode()方法,则默认调用的是Object类中的该方法,返回的是此对象的十进制内存地址。当使用java中Hash相关的容器时,比如HashMap,该容器的key是不能重复的。往map中存放数据的时候,会先调用key的hashCode方法得到一个整数h,经过hash算法得出一个hash值(h的高16位不变,低16与高16位做异或运算作为新的低16位)。再将hash值与数组长度做&运算得到存放该数
2022-01-20 18:16:03
402
1
原创 Docker安装RocketMQ
Docker安装RocketMQ转载自网络1. 从docker hub远程拉取镜像2. 启动namesrv服务3. 编写broker配置文件4.启动broker5.安装控制台转载自网络1. 从docker hub远程拉取镜像docker pull rocketmqinc/rocketmq:tag2. 启动namesrv服务docker run -d -p 9876:9876 -v /usr/local/mq/data/namesrv/logs:/root/logs -v /usr/local/m
2021-10-09 15:40:29
400
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人