- 博客(822)
- 资源 (25)
- 收藏
- 关注
原创 redis分布式锁实现Redisson+redlock中watch dog是如何判断当前线程是否持有锁进行续租的呢?
在 Redis 中,Watch Dog(看门狗)机制主要用于实现分布式锁的自动续期(如 Redisson 的RedLock实现)。其核心目的是确保当业务逻辑执行时间超过锁的初始过期时间(leaseTime)时,锁不会因过期而被其他线程/进程误获取。
2025-03-19 14:19:27
1003
原创 mac docker镜像加速正确配置方式
参考链接:https://blog.youkuaiyun.com/a1010256340/article/details/144883647。切记,阿里云的镜像加速地址只支持使用阿里云的ecs等产品才支持加速,本地的mac想支持加速无法支持的,这块踩了很长时间的坑。
2025-02-16 18:32:40
514
原创 es使用knn向量检索中numCandidates和k应该如何配比更合适
在KNN检索中,k 和 numCandidates 是两个关键参数,它们直接影响检索的准确性和性能。通常,numCandidates应设置为k的10倍左右,但具体比例需要根据数据规模、向量维度和性能需求进行调整。这是因为k个最近邻需要从numCandidates个候选中选出,如果numCandidates小于k,系统将无法返回足够数量的结果,导致查询失败或返回不完整的结果。• 大规模数据(如亿级文档):numCandidates 可以设置为k的20-30倍,甚至更高,具体视硬件资源和性能需求而定。
2024-12-19 23:42:08
1131
原创 BGE M3-embedding 中Dense retrieval、Lexical Retrieval、Multi-Vec Retrieval解释
基于向量相似度,适合捕捉语义相似性。:基于关键词匹配,简单高效。:结合了稠密检索和词汇检索的优点,提供更全面的相关性评估。
2024-10-15 16:44:34
446
原创 lucene中nvd和nvm索引文件作用以及规范化值是如何影响文档评分
NVD 和 NVM 文件在 Apache Lucene 中扮演着重要的角色,分别用于存储文档的规范化信息和相关的元数据。它们的存在不仅提高了文档评分的效率和准确性,还优化了索引的管理和维护。对于需要高效检索和准确评分的应用场景,如搜索引擎、推荐系统等,理解和合理利用这两个索引文件是非常重要的。作为软件工程师,掌握这些概念可以帮助你在构建基于 Lucene 的搜索解决方案时做出更好的设计决策。规范化值在 Lucene 中的主要作用是调整文档评分,以便更准确地反映文档与查询的相关性。
2024-07-30 15:50:45
845
原创 一口气学会常见java函数式接口用法
java函数式虽然日常使用特别方便,但是在阅读框架源码的时候,遇到函数式编程的写法可读性比较低,导致阅读障碍,现在将所有常见的函数式作用和写法总结了下,防止日后忘记。
2024-05-31 15:44:13
940
2
原创 lucene 9.10向量检索基本用法
Lucene 9.10 中的是用来执行最近邻(k-Nearest Neighbors,kNN)搜索的查询类,它可以在一个字段中搜索与目标向量最相似的k个向量。以下是的基本用法和代码示例。
2024-05-29 16:35:48
1443
原创 lucene中Collector类、CollectorManager类区分和用法
我的lucene版本是9.10.0,请说明Collector类、CollectorManager类区分和用法,尽量详细点在 Lucene 9.10.0 中,Collector类和类都是用于搜索结果的收集和处理。
2024-05-09 14:00:18
510
原创 【转载保存】词性还原和词干的区别
(4)在结果上,词干提取和词形还原也有部分区别。词干提取的结果可能并不是完整的、具有意义的词,而只是词的一部分,如“revival”词干提取的结果为“reviv”,“ailiner”词干提取的结果为“airlin”。(1)在原理上,词干提取主要是采用“缩减”的方法,将词转换为词干,如将“cats”处理为“cat”,将“effective”处理为“effect”。(2)在复杂性上,词干提取方法相对简单,词形还原则需要返回词的原形,需要对词形进行分析,不仅要进行词缀的转化,还要进行词性识别,区分相同词形但。
2023-09-21 14:35:53
271
原创 管理实践-教练技术的应用
文章目录简介课程学习的工具总结深度倾听3R原则倾听地图:开放式提问层次提问和SMART提问框架BIA积极性反馈GROW模型简介最近在参加管理培训课程,学习《教练式指导》一课,现将内容总结分享一下。课程学习的工具总结深度倾听3R原则工具使用场景:适用于倾听他人谈话时,如何深入倾听对方诉求,理解对方的情绪、情感和需求。注意点:深度倾听注意的3R原则使用注意要点1.Rreceive(接收):放下自己的想法和判断,一心一意的聆听别人,并观察对方表现出的信息。2.Respond(反应):使用肢体和
2022-04-04 22:56:52
2012
原创 Flink入门看完这篇文章就够了
文章目录第一章:概述第一节:什么是Flink?第二节:Flink特点?第三节:Flink应用场景?第四节:Flink核心组成第五节:Flink处理模型:流处理和批处理第六节:流处理引擎的技术选型拓展:什么是最多一次、最少一次和仅一次(精确一次)?第二章:Flink快速应用第一节:单词统计案例(批数据)需求依赖代码第二节:单词统计案例(流处理)需求代码Flink程序开发的流程总结第三章:Flink体系结构第一节:Flink的重要角色第二节:Flink运行架构第四章:Flink常用API使用第一节:Flink
2021-06-15 15:50:08
1448
原创 搜索研发工程师需要掌握的一些技能
基础语言大部分公司用的是Solr、ElasticSearch,都是基于Java实现的,因此熟悉掌握Java语言并灵活使用很重要360公司他们的分词、搜索引擎都是基于C、C++去写,因此C、C++也很重要,但是我工作当中主要用Java,其实我也忘了差不多了其实Python也很重要,Python提供了很多优秀的库可以解决很多应用场景,读写Excel、Word文档如果用Java库去调太麻烦了,还有Python提供了很多机器学习库,当然我是做工程更多这方面很多也不懂数据结构与算法我觉得所有软件的底
2021-06-02 18:50:28
1063
1
原创 基于CompletableFuture并发任务编排实现
文章目录并发任务编排实现不带返回值/参数传递任务串行执行并行执行并行执行-自定义线程池串并行任务编排并发任务编排实现其实Java8中提供了并发编程框架CompletableFuture,以下结合不同场景进行使用。不带返回值/参数传递任务模拟任务代码: DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); class TaskA implements Runnable{
2021-06-02 00:19:01
1587
5
原创 如何合理的配置线程数?
文章目录题记Java并发编程实战美团技术团队追求参数设置合理性线程池参数动态化题记我想不管是在面试中、还是工作中,我们总会面临这种问题,那么到底有没有一种计算公式去告诉我们如何去配置呢?答案是:没有想要合理的配置线程池参数,首先我们需要明白我们的任务是计算型还是IO密集型以及和CPU核数之间的关系。Java并发编程实战该书中推荐的计算方式线程数 = CPU 核心数 *(1+平均等待时间/平均工作时间)我觉得将这个公式转换一下更好理解线程数 = CPU 核心数 *(平均等待时间 + 平
2021-05-31 18:27:28
508
1
原创 MDC日志logback整合使用
MDC日志logback整合使用为什么使用MDC记录日志?场景:由于我的搜索服务并发量比较高,而处理一次搜索请求需要记录多个日志,因此日志特别多的情况下去查一次搜索整个日志打印情况会比较复杂。解决方案:可以使用用户id作为唯一标识,但是这种方案每次打印日志都需要传入用户id,并且如果一次请求涉及多线程场景下用户id传递会特别复杂,并且有的用户没有登录拿不到用户id每来一次搜索请求根据UUID生成一个标识作为traceId然后通过MDC记录这个traceId效果:入门指南:mave
2021-05-11 17:47:55
426
原创 从框架源码中学习结构型设计模式
文章目录从框架源码学习结构型设计模式适配器模式应用实例案例一:dubbo框架日志适配器Logger接口日志实现类Logger适配器接口LoggerAdapter实现类Logger日志工厂桥接模式应用场景案例:dubbo源码-远程调用模块channelHandler设计ChannelHandler是一个SPI拓展接口,用户可以定制自己的Handler抽象类:桥接ChannelHandler并实现自己的HandlerChannelHandler实现类抽象类实现类组合模式装饰器模式案例:apache common
2021-04-19 23:27:13
352
原创 从框架源码中学习创建型设计模式
文章目录从框架源码中解读创建型设计模式工厂模式案例一:RocketMQ源码-创建Producer生产者案例二:RocketMQ源码-创建过滤器工厂抽象工厂案例一:Dubbo源码-创建缓存的抽象工厂案例二:RocketMQ源码-创建日志对象的抽象工厂单例模式面试官:单例有几种写法?案例一:dubbo源码-饿汉式案例二:RocketMQ源码-懒汉式-非线程安全案例三:双重检查锁案例四:线程安全synchronized方法案例五:枚举类案例流:静态内部类建造者模式原型模式案例:RocketMQ源码-拷贝数组对象
2021-04-10 18:46:32
242
原创 设计模式七大设计原则
文章目录设计模式七大设计原则开闭原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则-最少知道原则单一职责原则合成复用原则设计模式面向对象的三个基本特征:继承封装多态设计模式体现了代码的耦合性、内聚性、可维护性、可扩展性、重用性、灵活性。代码重用性:相同功能代码不用多次编写可读性可扩展性:添加新功能非常方便,可维护可靠性:当我们添加新功能不影响原有的功能使程序呈现高内聚、低耦合的特性七大设计原则开闭原则原则:一个软件实体如类、模块、函数应该对拓展开发、对修改关闭在程序需要
2021-04-09 14:19:39
268
原创 深入剖析线程池基本原理以及常见面试题详解
文章目录面试官:能给我讲讲线程池的实现原理?线程池类继承关系ThreadPoolExecutor核心数据结构面试官:给我讲讲线程池的有哪些参数?面试官:如何优雅的关闭线程?线程的生命周期面试官:线程池哪五种状态?面试官:线程池哪4种拒绝策略?并分别说一下作用和实现原理?DiscardOldestPolicyAbortPolicyDiscardPolicyCallerRunsPolicy面试官:线程池常用的阻塞队列有哪些?能说下各自的区别?SynchronousQueue应用PriorityBlockedQu
2021-02-27 23:01:03
776
原创 ElasticSearch聚合查询
文章目录聚合分组求和平均值分析每种颜色下每种品牌的平均价格更多的metric学习Cardinality(唯一值)stats 一个聚合,输出多值查询+聚合分析查询聚合+全局聚合 深入聚合数据分析_global bucket:单个品牌与所有品牌销量对比过滤+聚合:统计价格大于1200的电视平均价格统计最近一个月的平均价格按照每种品牌的平均价格排序聚合分组select * from table order by title.keyword{ "size": 0, "aggs": { "gro
2021-02-23 23:07:11
487
原创 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
文章目录问题背景:问题排查过程问题背景:运行环境:Mac For IDEA我的Mac 更新最新系统(window解决办法也是如下)后,由于新系统的Mac会带JDK导致自动更新Java版本,最后导致我在Idea控制台中执行mvn install后抛出No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK问题排查过程执行java -version判断java是
2021-02-18 19:27:57
261
2
原创 记录一次服务进程强行退出的问题排查过程
场景:我这边从Hbase跑一亿多的全量数据录入Elasticsearch中,跑了四个多小时,程序突然挂掉了,然后我就纳闷了,为啥突然挂掉了???思路1:是不是Java 进程抛出OOM异常?分析程序日志没有任何异常,如果出现这种异常应该会在日志中打印的啊,怎么没有呢?如果是java OOM异常会打印 Java heap space的Exception in thread "pool-13-thread-25" java.lang.OutOfMemoryError: Java heap spaceEx
2021-02-08 17:31:00
533
2
原创 多线程场景下利用ThreadLocal是线程安全?
多线程测试代码:package com.gome.search.indexer.join.cat3.partiton.osop.utils;import java.util.UUID;import java.util.concurrent.*;public class ThreadLocalMultiThread { ThreadLocal<String> threadLocal = new ThreadLocal<>(); public static
2021-02-06 00:32:04
1520
5
原创 elasticsearch亿级数据量全量索引导入优化方案
Hbase scan读取时候,调大scannerTimeout超时时间 将全表扫描作为父线程,其他子线程录入数据到es时候,需要查询redis、hbase其他信息表、json索引数据组装等等,录入时间永远小于扫描时间,此时需要调大扫描过期时间,不然会抛出如下异常 org.apache.hadoop.hbase.UnknownScannerException: org.apache.hadoop.hbase.UnknownScannerException: Unknown scanner '479
2021-02-06 00:07:43
1714
原创 spring boot 如何动态替换bean?
测试类public class TestBean { String name; int age; public TestBean(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) {
2021-02-02 18:37:00
5767
4
原创 阿里京东滴滴等大厂面试题汇总
京东一面【京东云与AI-协同办公软件相关部门】:1.equal和hashcode2.线程五种状态3.同一个线程重复调用start方法会产生什么情况4,mybatis二级缓存5.springmvc请求处理流程6.dubbo处理流程7.final作用8.threadpoolexecutor?给你出个核心线程数,最大线程数,然后阻塞队列发现,问多少个任务过来线程池处理的流程?9.为什么方法返回值不能作为重载10.nginx反向代理?那么什么叫正向代理?京东一面现场面【京东云与AI-平台创新组
2021-01-17 16:26:52
1625
6
原创 java核心技术-jvm基础知识
文章目录JVM回顾JVM、JRE、JDK之间关系?Java程序执行过程?java虚拟机内存管理jvm整体架构jvm运行时内存程序计数器虚拟机栈本地方法栈堆元空间方法区运行时常量池直接内存OOM异常JVM类加载机制类加载系统类加载器双亲委派模型自定义类加载器ClassLoader源码剖析垃圾回收机制及算法如何判断对象已经死亡?面试:讲讲常见的垃圾收集算法?面试:垃圾回收器了解?讲讲几种垃圾回收器?我理解的垃圾回收器Serial[ˈsɪəriəl]收集器ParNew收集器Parallel(并行)[ˈpærəle
2021-01-17 16:03:25
800
3
原创 java核心技术-线程池基本原理以及常见面试题
文章目录线程池的实现原理线程池类继承关系ThreadPoolExecutorExecutor四种工具类ScheduledThreadPoolExecutorCompletableFuture用法线程池的实现原理线程池类继承关系ThreadPoolExecutorExecutor四种工具类ScheduledThreadPoolExecutorCompletableFuture用法...
2021-01-17 14:02:33
516
原创 java核心技术-多线程并发设计原理以及常见面试题
文章目录多线程回顾Thread和Runnablesynchronizedwait和notifyinterruptedException和interrupt()方法如何优雅的关闭线程并发核心概念并发与并行同步不可变对象原子操作和原子变量共享内存与原子传递并发问题数据竞争死锁活锁资源不足优先权反转JMM内存模型JMM和happen-beforevoliate关键字final关键字多线程回顾Thread和Runnablesynchronizedwait和notifyinterruptedExceptio
2021-01-17 13:29:48
625
2
原创 elasticsearch高级查询进阶
文章目录数据:索引mappings:准备数据:查询1.constant_score查询-不考虑文档频率得分,与搜索关键字命中更多的返回结果2.sort排序-分数相同情况下,按照指定价格域排序3.不考虑文档频率TF/IDF情况下,不同域打分权重不同进行召回4.不考虑文档频率TF/IDF情况下,不同域打分权重不同,再加上制定field的分数,最后最终得分返回,eg:title^3+content^1+time5.不考虑TFIDF得分,同一区域下,不同品牌权重不同6.如何基于地理位置查询,并且类似于自如租房查找周
2021-01-14 14:10:10
749
原创 bm25中调参因子
BM25提供两个调参因子k1:这个参数控制着词频结果在词频饱和度中的上升速度。默认值为 1.2 。值越小饱和度变化越快,值越大饱和度变化越慢。词频饱和度可以参看下面官方文档的截图,图中反应了词频对应的得分曲线,k1 控制 tf of BM25 这条曲线。b:这个参数控制着字段长归一值所起的作用, 0.0 会禁用归一化, 1.0 会启用完全归一化。默认值为 0.75 。在 字段长归一化 中,我们提到过 Lucene 会认为较短字段比较长字段更重要:字段某个词的频度所带来的重要性会被这个字段长度抵消,但
2021-01-09 16:15:34
172
原创 记录一次异常 java.lang.NoClassDefFoundError: org/apache/lucene/codecs/lucene53/Lucene53NormsFormat
异常信息:java.lang.NoClassDefFoundError: org/apache/lucene/codecs/lucene53/Lucene53NormsFormat at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) at java.lang.Class.getConstructor0
2020-12-31 16:01:25
774
原创 爬虫中如何获取页面编码类型
获取页面的编码格式的三种方式:根据Response中的header获取编码格式根据页面标签中的meta获取根据页面内容识别自动识别出编码格式,经过测试准确率比较高三种方式可以结合使用,由于inputStream不能够被复用,但是inputStrem没有clone方法也导致无法克隆因此需要流转化,这种方式多重比较需要重复进行流转化。依赖包我的资源工具类/** * 获取页面的编码格式 1.根据Response中的header获取编码格式 2.根据页面标签中的meta获取 3.根
2020-12-03 11:15:20
795
原创 判断对象属性值是否为空
private boolean checkObjFieldIsNotNull(Object obj){ try { for (Field f : obj.getClass().getDeclaredFields()) { f.setAccessible(true); if (f.get(obj) != null) { return true; ...
2020-11-17 15:59:38
519
原创 【待完成】并发包下常用到线程工具类汇总
countDownLatchsemaphorecyclicBarrieThreadPoolExecutorimport org.junit.Test;import java.util.ArrayList;import java.util.HashMap;import java.util.concurrent.*;public class MyTest { /** * countDownLatch使用一:一个线程等待其他多个线程都执行完毕,再继续自己的工作 .
2020-11-14 23:14:08
712
原创 ElasticSearch入门篇
文章目录控制台RESTFULL操作REST风格说明基于REST命令说明:es支持的数据类型核心数据类型ik分词器使用ik_smart最少切分ik_max_word最细粒度创建索引通过创建文档方式,自动创建索引库索引库创建控制台RESTFULL操作使用工具Cerebro v0.8.3REST风格说明一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简介,更有层次,更易于实现缓存等机制基于REST命令说明:meth
2020-11-13 14:47:57
787
原创 Hbase入门篇
package csdn.dreamzuora;import com.sun.istack.internal.logging.Logger;import org.apache.hadoop.hbase.*;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.util.Bytes;import java.io.IO.
2020-11-11 18:32:30
262
原创 堆排序和归并排序 java代码实现
文章目录堆排序java代码实现单元测试归并排序java代码实现单元测试堆排序java代码实现package csdn.dreamzuora.sort;import java.util.List;/** * Title: 抽象出排序类 * Description: * * @version 1.0 * @author: weijie * @date: 2020/10/22 17:59 */public abstract class Sort<E> { pu
2020-10-28 17:16:31
472
原创 计数排序和桶排序 java代码实现
文章目录计数排序java代码实现单元测试桶排序java代码实现单元测试计数排序java代码实现package csdn.dreamzuora.sort;import java.util.List;/** * Title: 抽象出排序类 * Description: * * @version 1.0 * @author: weijie * @date: 2020/10/22 17:59 */public abstract class Sort<E> { p
2020-10-28 10:29:43
334
文本乱码识别工具包下载
2020-12-03
全国省市直辖市文档
2018-10-18
java需要用到的redis包
2018-10-15
json所需要的包
2018-10-15
jetty9分拆的各个包下载
2018-10-15
java用到的所有常用jar包(mysql、json、ssm、websocket...)
2018-10-12
web中常用api
2018-02-19
线性表定义与实现
2018-02-19
欧拉函数公式以及证明
2018-02-19
图论的课件
2018-02-19
动态规划ppt详解
2018-02-19
网络流初步
2018-02-19
Polya定理以及知识点详解
2018-02-19
treap代码实现
2018-02-19
ACM培训演讲稿
2018-02-19
Polya定理Polya定理Polya定理
2017-11-09
动态规划动态规划概念 最长上升子序列 最长公共子序列 矩阵连乘问题 背包问题 树形DP 状态压缩DP
2017-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人