自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RR1335 之代码才是动力源

用代码描述世界、描述生活和人。

  • 博客(212)
  • 收藏
  • 关注

原创 Spring boot 3 的 imports 文件机制,与替换 META-INF/spring.factories 文件

SpringBoot3项目采用标准Maven目录结构,主要包含src/main/java和src/main/resources目录。java目录下按com.myprojectname包结构组织代码,包含Properties、Service、Controller和AutoConfiguration等核心类。resources目录下存放META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports自动配置文件和po

2025-08-08 16:02:12 48

原创 Oracle Cloud 无法服务的提示

Oracle云服务出现技术故障导致服务中断,官方表示正在紧急修复。故障公告中提供了Oracle销售代表、全球总部和美国技术支持的联系方式,包括1.800.ORACLE1等电话号码。公司对造成的不便表示歉意,但未说明具体故障原因和预计恢复时间。

2025-08-08 15:44:09 155

原创 JetBrains 的 IDEA 编辑器自动配置的 JDK版本下载目录

摘要 本文介绍了Java开发环境中的一个关键目录位置。根据内容显示,Mac系统下的Java虚拟机安装目录位于~/Library/Java/JavaVirtualMachines/路径下,其中包含一个名为ms-17.0.16的Java版本安装包。该信息对于需要在Mac系统上管理或配置Java运行环境的开发人员具有参考价值,可以帮助他们快速定位Java虚拟机的安装位置。

2025-08-08 15:03:09 138

原创 bash / zsh / fish 说明与三者的区别

摘要:macOS系统默认安装多种shell,包括/bin/bash、/bin/zsh、/bin/sh等。其中sh是最早的UNIX标准shell,zsh是macOS当前的默认shell,具有Bash、KornShell等功能。bash作为Linux默认shell,兼容sh但存在细微差异。其他shell如csh(类C语法)、tcsh(csh增强版)和ash(轻量级)也各有特点。用户可通过/etc/shells查看系统支持的shell列表,并在终端中切换使用不同的shell环境。

2025-08-05 15:52:36 255

原创 macOS 终端模式切换: bash and zsh

本文介绍了在macOS终端中查看和切换shell模式的方法及注意事项。通过echo $0命令可查看当前终端模式(默认zsh)。使用chsh命令可在bash和zsh间切换,若报错需执行scl.-read命令。环境变量文件分别为.bash_profile(bash)和.zshrc(zsh)。切换后需重启终端生效。注意用户目录路径需替换为实际用户名。

2025-08-05 15:35:10 192

原创 国内镜像安装 homebrew 以及遇到的错误提示

国内macOS用户安装Homebrew常见443端口连接错误,可通过国内镜像源解决。推荐使用清华大学、中科大或阿里云镜像,以清华源为例:1)安装Xcode CLT;2)设置临时环境变量指向清华Git仓库;3)执行克隆安装命令;4)完成路径配置。安装后需永久配置环境变量,并可通过brew help验证。该方法有效规避了GitHub连接不稳定问题,显著提升国内用户安装成功率。

2025-08-05 14:17:52 1005

原创 macOS 安装 homebrew 提示:Failed to connect to raw.githubusercontent.com port 443 after 27 ms 错误解决路径

摘要:在macOS上首次安装Homebrew时,若出现连接错误(Couldn't connect to server),可通过以下步骤解决:1)查询raw.githubusercontent.com的IP地址;2)修改/etc/hosts文件,添加IP映射;3)重新执行安装命令。成功后会创建/opt/homebrew目录及多个子目录,完成包管理器的安装。

2025-08-05 13:22:58 320

原创 安装 BUN ,Javascript 运行时环境

《Bun快速安装与配置指南》摘要:通过curl命令一键安装Bun后,需手动配置环境变量(在.zshrc中添加BUN_INSTALL和PATH路径)。安装完成后需执行source ~/.zshrc加载配置,之后即可使用bun --help查看功能说明。Bun是集运行时、包管理、打包和测试于一体的JavaScript工具链,支持run/test/install等命令,安装包时会自动处理依赖。最新版本1.2.19包含完整的npm生态支持,可通过官方文档和Discord社区获取更多支持。

2025-08-04 17:47:39 122

原创 elastic 搜索结果高亮显示的 java 代码实现

本文介绍了Elasticsearch分页查询与高亮显示的Java实现方法。通过SearchSourceBuilder设置高亮参数,使用preTags和postTags定义高亮标签样式,可对指定字段(如"tags")的匹配内容添加<em>标签实现高亮效果。该实现方式适用于Spring框架下的Elasticsearch查询场景,帮助开发者快速实现搜索结果的分页展示与关键词高亮功能。

2025-07-17 16:23:45 154

原创 elastic 分页 Java 代码实现

分页的构建。

2025-07-17 16:19:24 113

原创 elastic search and query的 Spring 代码实现

本文介绍了使用Spring框架构建Elasticsearch查询的代码实现。通过QueryBuilders工具类提供的matchAllQuery()方法,演示了如何执行全量查询。代码示例展示了创建SearchRequest、执行查询以及处理返回结果的全过程,包括获取总记录数、遍历结果集和提取JSON格式的源数据。该示例为开发人员提供了基础的ES查询实现模板,便于在实际项目中快速集成和使用Elasticsearch的搜索功能。

2025-07-17 15:48:15 223

原创 分布式搜索 elastic 的核心之一是分布「shard」

摘要:Elasticsearch深度分页问题可通过search_after和scroll两种方式解决。from/size方式默认仅支持前10000条数据,深分页会导致性能问题。search_after通过指定上一页最后结果的排序值实现高效分页,需配合sort使用。scroll则创建临时的搜索上下文保持结果集,适合大数据量导出,但会占用较多资源。两种方案都能有效避免深度分页时协调节点合并大量分片数据的性能瓶颈。(149字)

2025-07-17 15:03:43 496

原创 elastic 排序的功能 _score和分页 from and size,spring

摘要:本文介绍了Elasticsearch DSL中的复合查询和排序语法。基础查询GET/goods/_search使用match_all查询所有文档,并通过sort指定字段降序排序。进阶示例展示了多字段排序:先按sellingprice升序,再按salesvolume降序排列。注意:当使用asc/desc排序时,系统将不再按默认的打分(_score)排序。这些语法在Spring项目中可用于实现商品搜索功能。

2025-07-17 14:50:14 180

原创 elastic search 的 DSL 复合查询,Spring

本文介绍了Elasticsearch DSL语法中的布尔查询(bool query)关键参数。must表示"与"逻辑,必须匹配所有子查询;should表示"或"逻辑,选择性匹配;must_not表示"非"逻辑,必须不匹配;filter表示必须匹配但不参与算分。文章特别强调filter和must_not不影响相关性评分,并通过JSON示例展示了bool查询的语法结构,说明各参数都支持数组形式的多条件查询。这种查询方式适用于需要组合多种条件的复杂检索场

2025-07-17 14:32:53 228

原创 DSL语法,查询 elastic

本文介绍了Elasticsearch的基本查询语法,包括match查询、multi_match多字段匹配、function_score函数评分查询、term精确匹配查询和range范围查询。match查询用于分析文本字段,multi_match允许同时搜索多个字段,function_score可自定义评分规则,term适合不分词字段的精确匹配,range则用于数值范围筛选。每种查询都提供了示例DSL语句,如价格范围查询和品牌精确匹配,并解释了gte/lte等范围操作符的区别。这些基础语法是构建复杂Elast

2025-07-17 10:57:40 278

原创 Elastics 的 DSL 查询语法

Elasticsearch查询语法摘要:基本全量查询使用GET/goods/_search{"query":{"match_all":{}}},返回结果中hits数组存储实际数据。查询类型包括:1)全文检索(match_query),如Google搜索;2)精确查询,用于日期、布尔等不分词匹配;3)地理查询(geo_distance)用于位置搜索。注意:单次查询最多返回10000条数据,实际数据存储在hits数组的source字段中。

2025-07-17 10:37:20 173

原创 docker 容器的内存以及状态

摘要:本文介绍了几个常用的Linux命令,用于监控容器和进程资源使用情况。通过docker stats获取容器ID,使用ps -ef查看进程PID,最后通过top -p 1700命令(以PID 1700为例)可以实时监控特定进程的内存使用情况,帮助用户进行系统资源管理和性能分析。

2025-07-17 02:33:45 183

原创 elastic search 批量操作 bulk 的 spring 代码实现

本文介绍了Elasticsearch中基于Java API的批量文档操作,展示了如何使用BulkRequest实现新增和删除操作。示例代码演示了:1)批量新增文档,通过IndexRequest创建多个文档并指定ID和JSON内容;2)批量删除文档,通过DeleteRequest指定要删除的文档ID。两种操作都使用了esClient.bulk()方法执行批量请求,提高了操作效率。代码适用于Spring环境中对Elasticsearch索引"goods"进行批量处理。

2025-07-17 01:00:42 132

原创 Elasticsearch 文档「_doc」操作:新增、查询、修改等,spring

本文介绍了使用Elasticsearch创建索引的方法。通过Java代码示例展示了两种方式:1)直接创建空索引文档;2)从数据库获取数据后创建索引。重点说明了IndexRequest的使用方法,包括设置索引名称、文档ID和JSON数据源。特别提醒注意文档ID需定义为String类型,而非Long类型。文中还演示了如何将数据库实体类转换为索引文档对象,并提供了完整的代码实现示例。

2025-07-17 00:15:17 396

原创 Elasticsearch 索引(index) get 、delete、update等在 Spring 中的使用

本文介绍了Elasticsearch索引的基本操作,包括查询和删除索引的方法。作者通过Java客户端API展示了如何获取索引信息(GetIndexRequest)和检查索引是否存在(exists方法),以及如何删除索引(DeleteIndexRequest)。文章包含完整的代码示例和运行结果说明,重点演示了删除索引后的验证过程。作者指出索引库通常很少修改,因此未展示更新操作。这些操作为Elasticsearch的基本使用提供了实用参考。

2025-07-16 23:42:45 438

原创 nested: JsonParseException[Unexpected character (‘}‘ (code 125)) Elasticsearch 的错误处理

本文总结了Elasticsearch使用中常见的两个错误及解决方法。一是JSON格式错误导致的ElasticsearchParseException,主要由于字段值后有多余逗号,删除即可;二是ElasticsearchStatusException,原因是未配置analy_ik分析器,需改用已配置的分析器。这两个问题都涉及Elasticsearch映射配置的细节,正确设置后可避免解析异常。

2025-07-16 23:24:18 204

原创 Elasticsearch 创建索引的方法以及 Java代码 与官方指南

本文介绍了使用SpringBoot和Elasticsearch创建索引的方法。首先通过RestHighLevelClient建立与Elasticsearch的连接,然后定义了一个包含商品字段映射的常量Mappering_Template。关键代码展示了如何创建CreateIndexRequest对象并执行索引创建操作,其中包含了id、name、price等字段的类型定义和分词器配置。文章还提供了完整的测试类示例,包含客户端初始化和关闭逻辑,并特别提醒注意正确的import包路径以防止使用已废弃的API。

2025-07-16 23:12:12 299

原创 Elasticsearch 实战搜索配置字段

文章摘要:本文介绍了搜索系统中三类关键字段的配置方式:搜索字段(如商品名称、分类品牌)、排序过滤字段(如价格、销量)和展示字段(如库存、规格)。示例表格展示了10个字段的具体用途,包括是否加入ES索引(✅标识)以及字段类型(展示字段用"展示|✅"标注)。其中商品名称等核心字段用于搜索,价格等用于排序过滤,库存等仅用于结果展示,体现了搜索系统字段管理的典型方案。

2025-07-16 17:32:53 107

原创 Spring 和 elasticsearch 调用,与操作

摘要:本文介绍了如何在Java中使用Elasticsearch REST高级客户端。首先通过Maven引入elasticsearch-rest-high-level-client的7.17.22版本依赖,然后创建一个测试类并初始化RestHighLevelClient实例,连接到本地9200端口的Elasticsearch服务。最后展示了测试方法,在测试结束后需要关闭客户端连接。代码演示了基本的客户端初始化和使用过程。

2025-07-16 13:58:06 176

原创 Elasticsearch 批量处理 ES 的操作

这篇文章摘要描述了一个Elasticsearch的批量索引操作(_bulk),包含两条记录:第一条索引到"baijing"索引,ID为1,包含伯克利信息、邮箱和姓名;第二条索引到"heima"索引,ID为2,包含"如果是"信息、邮箱和中文姓名。操作使用JSON格式,展示了Elasticsearch批量导入数据的基本语法结构。

2025-07-16 13:38:59 85

原创 Elasticsearch 的增删改查

摘要:文档展示了Elasticsearch中针对"baijing"索引的基本操作流程。首先通过POST请求创建了一个包含负面餐厅评价的文档,包含info、email和name字段。然后使用GET验证文档创建情况。后续通过POST和_update操作修改了文档的email字段,将原邮箱"[email protected]"更新为"[email protected]"。整个过程演示了文档的创建、查询和更新操作。

2025-07-16 13:26:08 167

原创 ik 之后的分词库

中文分词器对比:ES默认使用Standard分词器,但处理中文效果有限。IK中文分词器曾流行但更新停滞,Pinyin和SmartChinese分词器功能较基础。HanLP分词器功能全面,达摩院分词器由阿里研发,而AliNLP作为阿里云最新支持的分词库,性能更优。不同场景下可选择合适的分词方案。

2025-07-16 12:40:15 98

原创 ik 分词器

摘要:原IK分词器在2012年后停止更新,现由analysis-ik项目维护。阿里云ES服务提供了IK分词器配置示例,支持中文分词和拼音转换,通过自定义analyzer实现多场景分词需求。示例展示了如何创建ik_pinyin_analyzer,将中文转换为拼音首字母、全拼及原词组合,并演示了"这是个测试"的分词结果,包含中文原词、拼音及首字母等多种分词形式。(注:摘要严格控制在127字)

2025-07-16 12:35:07 210

原创 Elasticsearch 初步与安装

本文介绍了Elasticsearch和Apache Lucene两个开源搜索技术。Apache Lucene是基于Java实现的搜索引擎核心库,而Elasticsearch是基于Lucene构建的分布式搜索引擎。文章提供了使用Docker安装Elasticsearch 7.12.1和Kibana的详细命令,包括内存配置、网络设置和端口映射等关键参数。特别强调了ES_JAVA_OPTS环境变量设置最小512MB内存的重要性,低于此值将导致安装失败。这些命令适用于快速搭建Elasticsearch和Kibana

2025-07-16 11:54:25 286

原创 rabbitmq 的 plugins 启动遇到错误Applying plugin configuration to [email protected] configuration unchan

摘要:操作记录显示RabbitMQ插件配置变更过程。首先尝试禁用rabbitmq_management插件,系统确认该插件已被禁用(同时显示其他已配置插件)。随后重新启用rabbitmq_management插件,操作成功并显示当前所有启用插件列表。整个过程涉及容器内RabbitMQ服务的插件管理操作,最终恢复了管理界面功能。

2025-07-14 22:56:55 266

原创 rabbitmq 插件方式处理延时消息

RabbitMQ延迟消息实现方法摘要:RabbitMQ可通过延迟消息插件(x-delayed-message)实现消息定时发送。具体步骤包括:1)安装rabbitmq_delayed_message_exchange插件;2)声明延迟交换机时设置x-delayed-type参数;3)发送消息时通过x-delay头指定延迟时间(毫秒)。在Spring中可用@RabbitListener注解配置延迟队列,设置exchange的delayed="true"属性。Docker环境下需先定位插件目

2025-07-14 22:52:34 345

原创 延迟消息 RabbitMQ

阿里云帮助中心介绍,云消息队列RabbitMQ版支持延时消息功能,适用于"等待付款"等典型场景。延时消息是指消息发送后延迟指定时间才被消费,可用于订单超时未支付自动取消等业务场景。该功能通过阿里云RabbitMQ实现,详细说明可参考官方文档。

2025-07-14 22:03:45 390

原创 幂等类业务处理 RabbitMQ 通过 messageids 解决的方案

摘要:文章介绍了RabbitMQ通过Jackson的JSON方式接收消息的配置方法。通过@Configuration注解创建消息转换器Bean,使用Jackson2JsonMessageConverter并设置生成消息ID。在@RabbitListener中获取消息ID和消息内容,但发现普通方式发送的消息没有message_id属性。代码示例展示了如何监听队列并输出消息ID和内容。

2025-07-14 19:00:51 334

原创 rabbitmq 消费者失败重试的配置

本文介绍了RabbitMQ的配置与消息处理机制。配置方面,发送者配置在template下,消费者配置在listener下,并设置了prefetch、acknowledge-mode等参数。对于包含事务的业务,需将stateless改为false。文章还提出了重试失败后的处理方案:通过定义error.exchange交换机和相关队列,使用RepublishMessageRecoverer将失败消息路由到错误队列。配置类ErrorConfig展示了如何创建错误交换机、队列及其绑定关系,为消息重试失败提供了可靠的

2025-07-14 17:57:51 212

原创 RabbitMQ 消费者的消费确认逻辑

消息确认模式有三种:none(不处理)、manual(手动处理)和auto(自动模式)。自动模式下,业务异常返回nack,消息处理或校验异常返回reject。可通过配置yaml文件选择模式,示例配置设置预取数为1,确认模式为auto。

2025-07-14 14:46:24 253

原创 lazy queue 的 Rabbit MQ 的消息持久化处理

摘要:RabbitMQ 3.12版本后默认采用Lazy模式存储队列消息,因此无需额外配置。可通过两种方式实现:1) 使用QueueBuilder创建持久化队列时调用.lazy()方法;2) 在@RabbitListener注解中通过@Argument参数设置x-queue-mode为"lazy"。Lazy模式会将消息优先存储在磁盘而非内存,适合大流量场景。示例代码展示了支付成功队列的监听实现,其中包含Lazy模式的配置方式。(98字)

2025-07-14 14:27:31 307

原创 rabbitmq 消息持久化: in memory and page out

摘要:测试对比了消息持久化(PERSISTENT)与非持久化(NON_PERSISTENT)两种模式的处理效果。当发送1000条非持久化消息时,系统会产生1000次页交换(pagedout);而持久化消息则未触发页交换,实现了零磁盘I/O操作,显著提升了处理速度。实验表明消息持久化设置直接影响系统性能,持久化消息通过避免页交换操作优化了吞吐效率。

2025-07-14 14:13:32 208

原创 RabbitMQ 持久化

本文介绍了RabbitMQ消息队列的持久化配置方法。在队列持久化方面,通过@RabbitListener注解设置durable="true"属性(默认值);交换机持久化同样选择Durable选项;消息持久化则采用2-Persistent模式。这些配置确保了消息队列、交换机和消息本身在服务器重启后仍能保持,提高了系统的可靠性。

2025-07-14 13:49:55 285

原创 return callback 错误信息,RabbitMQ

摘要:本文介绍了RabbitMQ消息确认机制中发送者消息确认的实现方式。通过@PostConstruct注解初始化rabbitTemplate的ReturnsCallback回调方法,当消息路由失败时记录错误信息,包括交换机名称、消息内容、路由键、返回码和错误提示(如NO_ROUTE)。该机制可用于监控消息投递状态,在消息无法路由时提供详细的错误日志信息。

2025-07-13 18:13:10 213

原创 RabbitMQ 消息确认机制处理: 发送者消息确认

RabbitMQ消息确认机制配置指南:1)在yaml中配置publisher-confirm-type为correlated(异步)并开启returns回调;2)代码实现需注入RabbitTemplate,通过@PostConstruct设置全局ReturnCallback,每次发送消息时需指定ConfirmCallback。配置示例包含连接参数和重试策略,发送消息时通过CorrelationData实现异步确认回调,处理成功/失败场景。注意ReturnCallback只需初始化一次,而ConfirmCal

2025-07-13 18:02:43 509

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除