数据库

Lucene实现全文检索技术(包含SpringBoot整合Lucene 7.6.0)

Lucene实现全文检索技术(包含SpringBoot整合Lucene 7.6.0)

Lucene实现全文检索的流程 ① 绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括:确定原始内容即要搜索的内容、采集文档、创建文档、分析文档、索引文档 ② 红色表示搜索过程,从索引库中搜索内容,搜索过程包括:用户通过搜索界面、创建查询、执行搜索,从索引库搜索引擎渲染搜索结

Joe.Ye Joe.Ye 2023-05-04
0 0 1
SpringBoot+Lucene第六篇 — 索引的增删改查

SpringBoot+Lucene第六篇 — 索引的增删改查

为了减少代码量,写一个公用的增删改公用的获取IndexWriter对象的方法 /** * 增删改公用的获取IndexWriter对象 * @return * @throws Exception */ public IndexWriter getIndexWriter() throws Exc

Joe.Ye Joe.Ye 2023-05-04
0 0 0
SpringBoot+Lucene第五篇 — 创建索引 — 域的再学习

SpringBoot+Lucene第五篇 — 创建索引 — 域的再学习

前文实现了一个lucenne的全文检索,回顾一下我们的流程: 针对每个文档,构建一个文档对象。该文档对象里面用了不同的域,描述了该文档的信息,大小,内容。。。 将文档对象扔进索引库 将索引库,存放在本地磁盘 到磁盘的索引库目录下,创建了一个查询对象,查询条件是:指定内容分词进行查询,获取查询结果

Joe.Ye Joe.Ye 2023-05-03
0 0 0
SpringBoot+Lucene第四篇 — 入门代码

SpringBoot+Lucene第四篇 — 入门代码

需求:通过关键字搜索文件,凡是文件名或文件内容包括关键字的文件都需要找出来:下图(是一堆文件列表) pom.xml <dependency> <groupId>org.apache.lucene</groupId> <artifactId&g

Joe.Ye Joe.Ye 2023-05-03
0 0 0
Lucene的学习第三篇 — 分词

Lucene的学习第三篇 — 分词

Lucene创建索引—分词,分词主要介绍这几个问题  分词是什么?  分词干嘛?  分词怎么分? 例如:我们能找到aaabbb.txt文档,但是不能找到aaabbb文档,好像说明fileName只能进行精确匹配。但是不能找到XXXX.txt文档,说明不是精确匹配,而是在索引库中全文检索.txt

Joe.Ye Joe.Ye 2023-05-03
0 0 1
Lucene的学习第二篇 — Lucene的流程与构建文档对象

Lucene的学习第二篇 — Lucene的流程与构建文档对象

既然Lucene是实现全文检索,那么明白以下几个问题, Lucene是什么? Lucene实现全文检索的流程? 索引到底是如何创建的?(Indexing) 索引里面存放的又是什么东西? 搜索的的时候又是如何去查找索引的?(Search) 这5个问题搞明白了,那么lucene就算入门了。 1:lu

Joe.Ye Joe.Ye 2023-05-03
0 0 1
Lucene的学习第一篇 — 引出Lucene

Lucene的学习第一篇 — 引出Lucene

需求场景提出 1:在指定(10个)不同名字,不同内容的word文档中,进行任意指定搜索。比如:搜索哪个文档中有:“高富帅”、“吃鸡”、”read”…等词汇 2:站内搜索:搜索任意关键词,出来相关内容。论坛,贴吧,淘宝 3:百度类似的搜索 4:智联招聘的搜索 分析 常规的搜索,我们是对数据库的内容

Joe.Ye Joe.Ye 2023-05-03
0 0 1
Redis HyperLogLog

Redis HyperLogLog

Redis HyperLogLog Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。 在 Redis

Joe.Ye Joe.Ye 2023-04-02
0 0 0
SpringBoot+Redis布隆过滤器防恶意流量击穿缓存

SpringBoot+Redis布隆过滤器防恶意流量击穿缓存

布隆过滤器 BloomFilter是一种空间效率的概率型数据结构,由Burton Howard Bloom 1970年提出的。通常用来判断一个元素是否在集合中。具有极高的空间效率,但是会带来假阳性(False positive)的错误。 False positive && Fal

Joe.Ye Joe.Ye 2023-04-02
0 0 1
SpringBoot在Redis中使用BloomFilter布隆过滤器机制

SpringBoot在Redis中使用BloomFilter布隆过滤器机制

Redis缓存穿透:查询Redis,为了防止他人恶意使用不存在的key访问redis,造成大批量的出现缓存穿透现象(直接查询数据库,导致数据库扛不住) Maven依赖 添加 Redis & BloomFilter 的核心依赖包: <!--使用Redis--> <depen

Joe.Ye Joe.Ye 2023-04-02
0 0 1
布隆过滤器的方式解决缓存穿透问题

布隆过滤器的方式解决缓存穿透问题

原理 布隆过滤器的巨大用处就是,能够迅速判断一个元素是否在一个集合中。因此他有如下三个使用场景: 网页爬虫对URL的去重,避免爬取相同的URL地址 反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是否垃圾邮箱(同理,垃圾短信) 缓存穿透,将所有可能存在的数据缓存放到布隆过滤器中,当黑客访问不存在的缓

Joe.Ye Joe.Ye 2023-04-02
0 0 0
Redis的缓存穿透及解决方法——布隆过滤器BloomFilter

Redis的缓存穿透及解决方法——布隆过滤器BloomFilter

Redis概述 Redis是一个开源的Key-Value存储系统,其中Value支持string、list、set、hash、zset五种数据结构,这些数据都支持push/pop、add/remove、取交集并集、排序等丰富的操作,并且这些操作都是原子性的。 与同为NoSQL型缓存数据库的memc

Joe.Ye Joe.Ye 2023-04-02
0 0 0
为什么 SQL 语句不要过多的 join?

为什么 SQL 语句不要过多的 join?

free命令缓存buff/cache 查看内存的命令:free 或者 top,其中使用free命令都可以看到信息 $ free -mh total used free shared buff/cache available Me

Joe.Ye Joe.Ye 2023-04-01
0 0 0
关于 MySQL InnoDB 锁的超全总结

关于 MySQL InnoDB 锁的超全总结

几个月之前,开始深入学习 MySQL 。说起数据库,并发控制是其中很重要的一部分。于是,就这样开起了 MySQL 锁的学习,随着学习的深入,发现想要更好的理解锁,需要了解 MySQL 事务,数据底层的存储方式,MySQL 的执行流程,特别是索引的选择等。 InnoDB 锁一览 先从 MySQL 官网

Joe.Ye Joe.Ye 2023-04-01
0 0 0
MySQL加锁实践

MySQL加锁实践

间隙锁(Gap Lock) 首先谈谈间隙锁是什么。 间隙锁是专门用于解决幻读这种问题的锁,它锁的了行与行之间的间隙,能够阻塞新插入的操作,同时间隙锁的引入也带来了一些新的问题,比如:降低并发度,可能导致死锁。 这里特别记录下读读不互斥,读写/写读/写写是互斥的,但是间隙锁之间是不冲突的,间隙锁会阻塞

Joe.Ye Joe.Ye 2023-04-01
0 0 0
1 2 3 11