从电商系统订单状态说状态模式!
herman 7年前 (2018-12-17) 5559浏览
状态模式,听过的人可能不是很多,它不在我们熟知的 23 中设计模式之内。但它归属与行为型模式中的一种。今天我们一起来学习学习状态模式! 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模...
herman 7年前 (2018-12-17) 5559浏览
状态模式,听过的人可能不是很多,它不在我们熟知的 23 中设计模式之内。但它归属与行为型模式中的一种。今天我们一起来学习学习状态模式! 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模...
herman 7年前 (2018-12-15) 12442浏览
最近我们的电商系统中在大促时出现了一个分页 Bug,问题产生的原因就是 Redis 的 ZREVRANGEBYSCORE 指令使用不当导致的。表现在 java 代码中就是 zrangeByScoreWithScores 方法使...
herman 7年前 (2018-12-14) 4988浏览
网上搜索了一下关于 Lucene 教程的文章非常多,但是关于 SpringBoot 整合 Lucene 的非常少,可能一些涉及到搜索的项目都比较老,使用 Lucene 的比较少,使用 Solr 和 Elasticsearch 的可能比较多。但是文...
herman 7年前 (2018-12-13) 3606浏览
从零开始设计一个秒杀系统,掌握这些知识点后你的薪资不低于 20K+。 掌握这套秒杀系统你需要学会这些知识点:高并发,多线程,Redis,MQ,SpringBoot,MySQL,Tomcat,Nginx,Jemeter,分布式部署,分布式集群...
herman 7年前 (2018-12-13) 3084浏览
任何存储到硬盘的数据基本上都需要备份,当然像 Redis 这类的可能也需要备份。备份的话,一般大致都分为两种,热备份和冷备份。备份完了之后一般都需要恢复。那么关于 Lucene 的冷热备份以及恢复是怎样的呢?请看本文,我们一起来学习学习! ...
herman 7年前 (2018-12-13) 3590浏览
在使用 Lucene 的过程中,我们需要通过 FSDirectory.open(Paths.get("D:\\xttblog")); 之类的得到 lucene 的索引目录。然后再得到 IndexWriter,或者通过 Dire...
herman 7年前 (2018-12-13) 4145浏览
AI 和人工智能正在崛起,导致一些人们担心 AI 会取决人类。这其实是一种杞人忧天,马云认为 AI 应翻译为“机器智能” 而不是“人工智能”,而我也是这样认为的。 随着 AI 的崛起,网上流行...
herman 7年前 (2018-12-13) 4071浏览
在某些需求场景下,我们可能需要禁用模糊查询 FuzzyQuery 和通配符查询 WildcardQuery,那通过 QueryParser 该怎么做呢? 答案就是重写 QueryParser 类。实现自己的 QueryParser 类,并将...
herman 7年前 (2018-12-13) 2463浏览
Lucene 中的 IndexSearcher 提供了一整套完整的搜索体系,这套查询体系是建立在 SpanQuery 类的基础上。SpanQuery 类大致的反映了 Lucene 的 Query 类体系。今天我们一起来学习学习 SpanQuery...
herman 7年前 (2018-12-13) 3730浏览
所有建立索引的目的就是为了检索。 索引一般只需要建立一次,但是搜索才是核心。建立索引的目的就是为了检索。IndexSearcher 索引搜索器是 Lucene 中核心的核心,是搜索过程中最重要的和核心组件。本文...
herman 7年前 (2018-12-12) 2802浏览
最近我看了混沌大学里张首晟教授的演讲,张教授始终强调一个“大道至简”的至理名言。因为所有的科学发现,技术进步都是从简单的基础知识得来的。比如:勾股定理,欧几里得几何,万有引力,相对论等,都是基于自然界的自然事实得出的。 ...
herman 7年前 (2018-12-12) 3298浏览
从教程的第一篇到现在,大家可能会发现一个问题。那就是所有的 Document 文档或者 Field 字段都使用的是同一个分词器。那么有没有办法让不同的 Field 使用不同的分词器呢? 答案就是 PerFieldAnalyzerWrappe...
herman 7年前 (2018-12-12) 2687浏览
在 Lucene 中,不仅 TokenFilter 我们可以自定义,Analyzer 我们也可以自定义。本文介绍两个扩展 Analyzer 的例子,分别实现扩展停用词,实现字长过滤的功能。 自定义 Analyzer 自定义 Analy...
herman 7年前 (2018-12-12) 3878浏览
当你深入骨髓的去了解一项技术,你才能获得快感!上一章,我们说过 Analyzer 分词器的主要是用来构建 TokenStreams,那么我们今天就一起通过本文来看看 Analyzer 的内部构造,TokenStream 和 TokenFilter...
herman 7年前 (2018-12-12) 2915浏览
这一章也不算是什么新的内容了,前面我已经写过两篇关于 Analyzer 的内容了。它们分别是《深入理解 Lucene 的 Analyzer》、《详解 org.apache.lucene.analysis.Analyzer 使用教程》。这篇文章,我...