- 博客(104)
- 资源 (1)
- 收藏
- 关注
原创 广告布尔检索
布尔表达式检索(Boolean Expression Retrieval)是一种信息检索技术,它允许用户通过逻辑运算符(AND、OR、NOT)来组合多个关键词或查询条件,以此来精确定义他们想要查找的信息。这种技术基于布尔代数的基本原理,允许用户创建复杂的查询语句来匹配文档中的内容。
2024-10-11 14:20:00
645
原创 Lucene 倒排索引
倒排索引(Inverted Index)是一种用于信息检索的数据结构,特别是在文本搜索和处理大量文档时非常有用。倒排索引主要用于快速查找包含特定关键词的文档集合,它是搜索引擎、数据库管理系统和自然语言处理等领域中的关键技术之一。
2024-10-11 14:13:47
1177
原创 Java 内存模型
"JMM" 通常指的是 "Java Memory Model"(Java内存模型)。Java内存模型定义了Java程序中各种变量(实例字段、数组元素以及volatile变量)的存储行为,它解决了在多线程环境下变量值更新的一致性问题
2024-10-10 09:21:51
1261
原创 AQS 抽象队列同步器
ReentrantLock, Semaphore, CountDownLatch 等。AQS 的核心思想是基于一个同步状态变量来管理线程之间的共享资源访问。这个状态变量是一个整数,通过内部队列(CLH lock 队列的一种变种)来协调多个线程对这个状态的访问。当一个线程请求访问被另一个线程占用的状态时,它会被放入队列中等待
2024-10-10 09:16:15
1179
原创 分布式 ID
分布式ID(Distributed ID)是指在分布式系统中用于唯一标识各个实体或事件的标识符。在分布式系统中,由于数据和服务分布在不同的节点上,因此需要确保每个生成的ID在整个系统范围内都是唯一的,即使在不同的服务或服务器之间也能保持唯一性。这种唯一性对于确保数据的一致性和正确性至关重要。
2024-10-10 09:10:54
1636
原创 Elasticsearch Suggester
在当今的互联网时代,用户期望得到即时且准确的信息反馈。无论是电子商务网站上的产品搜索,还是社交网络中的用户资料查找,快速而精确的搜索体验已成为提升用户体验的关键因素之一。Elasticsearch 作为一个高性能的搜索和分析引擎,不仅能够处理海量数据的实时搜索,还提供了一系列高级搜索功能来优化用户体验,其中之一便是 suggester 功能
2024-10-10 09:05:58
1117
原创 Elasticsearch 索引备份
在当今数据驱动的世界里,确保数据的安全性和可恢复性变得前所未为的重要。作为一款高性能的搜索和分析引擎,Elasticsearch 不仅提供了强大的实时搜索能力,同时也具备了一系列保障数据完整性的特性,其中最为关键的一项便是其备份功能。本文将深入探讨 Elasticsearch 如何通过快照(snapshot)机制来实现数据的备份与恢复,帮助我们构建更加稳健的数据存储解决方案。
2024-10-10 09:02:03
641
原创 Elasticsearch 索引数据预处理
Elasticsearch 的 Pipeline 功能主要用于处理索引文档的数据,即在文档被索引或查询时对其进行处理。Pipeline 可以帮助你实现数据的实时处理,而不需要修改原始数据源。这种功能对于需要对数据进行标准化、转换或增强的应用场景非常有用
2024-10-10 08:55:33
943
原创 Elasticsearch 入门
Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于各种数据,包括文本、数字、元数据等。它能够实现实时的文档检索、分析和可视化,被广泛应用于网站和应用的全文搜索功能中。Elasticsearch 基于 Lucene 开发,但它的目标是比 Lucene 更加简单易用,通过 RESTful API 提供了强大的功能集合,允许用户执行复杂的多字段查询,并能快速获取结果。
2024-10-10 08:50:59
4226
原创 JVM 堆空间
JVM(Java虚拟机)堆空间是指Java程序运行时用于存储对象实例的内存区域。它是JVM内存模型中的一个重要组成部分,主要用于存放由new关键字创建的对象以及数组。当Java程序开始执行时,会分配一块内存作为堆空间,所有的线程共享这块内存区域
2024-10-10 08:44:53
1691
原创 JVM 方法区
JVM(Java虚拟机)的方法区(Method Area)是JVM规范定义的一部分,它用来存储每个类的信息,包括类定义信息、常量池、静态变量以及编译后的代码等。方法区在JVM启动时被创建,它是被线程共享的一块内存区域。需要注意的是,虽然通常人们会把方法区称为“永久代”(Permanent Generation),但实际上这是HotSpot JVM的一个实现细节,在其他JVM实现中可能并不存在这个概念
2024-10-10 08:40:04
1253
原创 Java 虚拟机栈
JVM栈(Java Virtual Machine Stack)是Java虚拟机的一部分,它用于管理线程的函数调用过程中的方法执行上下文。每个线程在创建时都会获得一个JVM栈,这个栈中存放的是一个个栈帧(Stack Frame),每一个栈帧对应着一次方法调用。
2024-10-10 08:33:29
1200
原创 微服务发展历程
微服务架构(Microservices Architecture)是一种设计软件应用程序的方法,它将一个大型的应用程序拆分为多个小型、独立的服务,每个服务都实现了应用程序的一部分功能。这些服务通过轻量级通信协议(通常是HTTP)互相通信,并且每个服务都可以独立地开发、部署、扩展和维护。
2024-10-10 07:36:30
1028
原创 Spring Security
Spring Security 是一个功能强大且高度可定制的身份验证和授权框架,它是 Spring Framework 的一部分,专门用于为 Java 应用程序提供安全服务。Spring Security 可以帮助开发者实现安全控制,包括认证(Authentication)、授权(Authorization)以及会话管理等功能。
2024-10-09 22:25:03
1403
原创 Nacos
Nacos 是阿里巴巴开源的一款易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于使构建、部署和管理微服务变得更加简单高效,尤其适用于大规模分布式系统的场景。Nacos 支持服务发现与配置管理两大核心功能,并且具有良好的扩展性和易用性。
2024-10-09 22:19:46
2184
原创 Seata
Seata 是一款开源的分布式事务解决方案,旨在解决微服务架构下的分布式事务问题。它提供了一种高性能且易于使用的框架,帮助开发者实现服务间的一致性事务处理。Seata 的设计目标是在保持高性能的同时,提供可靠的分布式事务处理能力。
2024-10-09 22:16:06
886
原创 Sentinel
Sentinel 是阿里巴巴开源的一款针对微服务架构下的流量控制和保护的工具,主要用于实现限流、降级、熔断等功能。Sentinel 可以帮助开发者保护应用程序免受突发流量的影响,确保在高并发场景下系统的稳定性和可用性。
2024-10-09 22:10:04
1851
原创 Openfeign
OpenFeign 是一个声明式的 HTTP 客户端库,最初由 Netflix 开发并作为其微服务架构的一部分。OpenFeign 允许开发者以一种非常简单的方式定义接口,然后通过这些接口来调用远程服务,就像调用本地方法一样。它简化了客户端的编写,并且可以和其他服务发现和配置中心集成,例如 Eureka、Consul 或者 Ribbon
2024-10-09 21:57:53
989
原创 Elasticsearch Suggester
Elasticsearch Suggester 是 Elasticsearch 提供的一个功能组件,它主要用于实现自动补全(Auto-Completion)和建议(Suggestions)功能。当用户在搜索引擎中输入查询词时,Suggester 能够根据用户已输入的部分字符快速提供一系列可能的完整查询词选项,从而帮助用户更快地找到他们想要搜索的内容。
2024-10-09 15:17:32
1226
原创 GC 算法
GC算法指的是垃圾收集(Garbage Collection)算法,它是计算机科学中自动内存管理的一种形式。在编程语言中,特别是那些自动管理内存的语言 java,垃圾收集器负责自动检测不再使用的内存,并将其释放以供后续使用。这避免了手动管理内存可能导致的内存泄漏等问题。
2024-10-09 15:01:37
1139
原创 Raft 算法
Raft 是一种分布式一致性算法,用于管理分布式系统中的一组节点(称为“服务器”或“进程”),以确保这些节点能够达成一致并维护相同的状态。Raft 算法的设计目标是使一致性算法的概念更易于理解,并且在实现上更易于实现和调试。相比 Paxos 算法,Raft 的设计更加直观,更容易被开发者所理解。
2024-10-09 14:51:37
1020
原创 【每日一题】最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n)的算法解决此问题。
2024-09-28 15:30:42
257
原创 数据结构-AC自动机
AC自动机(Aho-Corasick Automaton)是一种用于字符串匹配的高效算法,尤其适用于在一个文本中查找多个模式字符串的情况。AC自动机最初由 Alfred V. Aho 和 Margaret J. Corasick 在1975年提出,因此得名。该算法在文本搜索、模式匹配等领域有着广泛的应用
2024-09-27 11:31:14
1161
原创 机器学习-TopicModel
主题模型(Topic Modeling)是一种用于从文档集合中自动提取隐藏的主题结构的技术。这些主题反映了文档中词汇的共同出现模式,从而揭示了文档集合中的潜在主题。主题模型在文本挖掘、信息检索、自然语言处理等领域有着广泛的应用。
2024-09-27 11:01:34
932
原创 机器学习-朴素贝叶斯
朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的概率分类器,在机器学习和统计学中被广泛用于分类任务。它的“朴素”之处在于假设特征之间相互独立,尽管在现实中这个假设通常不成立,但朴素贝叶斯分类器在许多情况下仍然表现良好。
2024-09-27 10:56:58
789
原创 机器学习-SVM
支持向量机(Support Vector Machine, SVM)是一种监督学习模型,主要用于分类和回归分析。SVM的核心思想是通过找到一个超平面(在高维空间中称为超平面,二维空间中称为直线),使得两类样本在该超平面两侧被最大程度地区分开来
2024-09-27 10:53:41
1261
1
原创 机器学习-聚类
聚类算法是一种无监督学习方法,用于将数据集中的对象分成多个组(或簇),使得同一个簇内的对象彼此之间的相似度较高,而不同簇的对象之间相似度较低。聚类的目标是在没有类别标签的情况下,根据对象的特征自动地发现数据内在的结构或分布模式。
2024-09-27 10:51:28
938
原创 机器学习-KNN
K-Nearest Neighbors (KNN) 分类器是一种基于实例的学习算法,用于分类和回归任务。KNN的核心思想是根据输入样本的特征值,在特征空间中找到最接近该样本的K个邻居,并根据这些邻居的多数类别来决定输入样本的类别。
2024-09-27 10:47:06
662
原创 机器学习-模型集成
XGBoost(Extreme Gradient Boosting)是一种流行的机器学习算法,特别适用于处理具有大量数据的监督学习任务。它基于梯度提升决策树(Gradient Boosting Decision Trees, GBDT)框架,通过优化目标函数并使用正则化技术来提高模型的性能。
2024-09-27 10:29:15
1359
原创 机器学习-决策树
决策树(Decision Tree)是一种监督学习算法,用于分类和回归任务。它通过树形结构来表示一系列的规则,从而对输入的数据进行分类或预测。决策树模型易于理解和解释,因此在许多领域得到了广泛应用。
2024-09-27 10:18:03
1754
1
原创 搜索引擎关键字智能提示实践
搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误的搜索词,并将用户引导到相应的关键词上,以提升用户使用体验。
2023-02-02 11:27:35
1224
原创 【每日一题】调整搜索二叉树中两个错误的节点
一棵二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这棵二叉树不再是搜索二叉树,请找到这两个错误节点并返回。已知二叉树中所有节点的值都不一样,给定二叉树的头节点 head,返回一个长度为 2 的二叉树节点类型数组 errs,errs[0] 表示一个错误节点,errs[1] 表示另一个错误节点。
2022-11-16 23:24:16
445
原创 【每日一题】LFU 缓存
一个缓存结构需要实现如下功能:但是缓存最多放 K 条记录,如果新的 K + 1 条记录需要加入,就需要根据策略删掉一条记录,然后才能把新记录加入。这个策略为:在缓存结构的 K 条记录中,哪一个 key 从进入缓存结构的时刻开始,被调用 set 或者 get 次数最少,就删掉这个key 的记录;如果调用次数最少的 key 有多个,上次调用发送最早的 key 被删除。这个就是 LFU 缓存替换算法。实现这个结构,K 作为参数。
2022-11-15 20:59:24
830
原创 【每日一题】矩形重叠个数
平面内有 n 个矩形,第 i 个矩形的左下角坐标为(x1[i], y1[i]),右上角坐标为:(x2[i], y2[i])。如果两个或多个矩形有公共区域,则认为他们是相互重叠的(不考虑边界和角落)。请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠?
2022-11-12 22:09:43
764
原创 【每日一题】线段重叠
一条直线上有 n 个线段,第 i 个线段的坐标为$(x_1[i],x_2[i])$。请你计算出直线上重叠线段数量最多的地方,有多少个线段相互重叠?
2022-11-12 00:02:33
734
原创 【每日一题】环形加油站
N 个加油站组成一个环形,给定两个长度都是 N 的非负数组 oil 和 dis(N > 1),oil[i] 表示第 i 个加油站存的油可以跑多少千米,dis[i] 代表第 i 个加油站到环中下一个加油站相隔多少千米。假设你有一辆邮箱足够大的车,初始时车里没有油。如果车从第 i 个加油站出发,最终可以回到这个加油站,那么第 i 个加油站就算良好出发点,否则就不算。请返回长度为 N 的 boolean 数组 res,res\[i] 代表第 i 个加油站是不是良好出发点。
2022-11-10 20:58:33
661
原创 【每日一题】正数分裂
title: 正数分裂tags: 每日一题 动态规划typora-root-url: ../../dongyifeng.github.io“给定一个正数 1,裂开的方法有一种:(1)给定一个正数 2,裂开的方法有一种:(1,1),(2)给定一个正数 3,裂开的方法有一种:(1,1,1),(1,2),(3)给定一个正数 4,裂开的方法有一种:(1,1,1,1),(1,1,2),(1,3),(2,2),(4)给定一个正数 n,求裂开的方法数。”亮点:斜率优化方案一:暴力递归f ( pr
2022-11-09 10:28:29
639
原创 【每日一题】包含所有字符的最小子串长度
“给定字符串 str1 和 str2 ,求 str1 的子串中含有 str2 所有字符的最小子串长度。【举例】str1 = “abcde” ,str2 = “ac“ 因为 ”abc“ 包含 str2 所有的字符,并且在满足这一条件的 str1 的所有子串中,”abc“ 是最短的,返回 3.str1 = “12345” ,str2 = “344“,最小包含子串不存在,返回 0。”分析:使用 left 和 right 维护一个滑动窗口。right 移动的时机:窗口没有包含 str2 。扩大窗
2022-11-08 00:27:06
473
集体智慧编程
2013-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人