- 博客(184)
- 收藏
- 关注
原创 Lucene 高阶查询的六脉神剑 —— QueryParser
上篇我们介绍了 Lucene 多样的查询模式,每一种都是相互独立的用来解决特定查询目标的 Query 对象。本节我们要将这些查询模式使用 QueryParser 组合起来...
2019-09-14 11:44:26
418
原创 要飞起来了,Lucene 高阶查询技巧
在前面的章节中我们使用了最基础的关键词查询 TermQuery 和 复合查询 BooleanQuery,本节我们来尝试 Lucene 内置的其它高级查询功能。字符串前缀查...
2019-09-12 10:39:05
392
转载 面试题:请解释一下什么是虚拟内存?
内存对于用户来说就是一个字节数组,我们可以根据地址来访问到某个字节或者某些字节:很久之前的内存很久很久之前,一台机器上只放置一个程序,操作系统仅仅作为一个函数库存在。对于...
2019-09-11 09:10:00
2005
原创 倒排索引的精致结构
前文提到倒排索引就是一个字典,字典的 Key 是关键词,字典的 Value 是文档 ID 列表(PostingList)。但是如果再深入一些,就完全不是这么回事,不论是 ...
2019-09-09 10:01:55
275
原创 一个朴素的搜索引擎实现
今天我们要使用 Lucene 来实现一个简单的搜索引擎,我们要使用上一节爬取的果壳网语料库来构建索引,然后在索引的基础上进行关键词查询。上一节果壳网的语料库放在了 Red...
2019-09-07 09:40:00
700
转载 5折抢购最后一天 | 戴尔顶级配置电脑,限时秒!
创业钱紧,买设备需要精打细算低端、旧款、性能差私底下总被大家笑话有钱谁不想给大家配个好电脑?创业老板真的“太南了“!戴尔深圳创业节五折限时抢,全网底价购最后冲刺,仅剩一天...
2019-09-06 10:21:09
157
原创 搜索引擎的预料库 —— 万恶的爬虫
本节我们来生产一个简单的语料库 —— 从果壳网爬点文章。后面我们将使用这些文章来完成索引构建和关键词查询功能。https://www.guokr.com/article/...
2019-09-05 09:20:00
225
原创 字节跳动面试题 —— 史莱姆变形计
本文的主人公叫「苟史韵」,他最近参与了字节跳动面试,遭遇了一道非常困惑的面试题面试官出题-----------------------------------------...
2019-09-04 09:20:00
476
转载 万亿级图数据库 Nebula Graph 的数据模型和架构设计
Nebula Graph 是目前唯一能够存储万亿个带属性的节点和边的在线图数据库。Nebula Graph 不仅能够在高并发场景下满足毫秒级的低时延查询要求,而且能够提供...
2019-09-03 09:20:00
460
原创 开源搜索技术的核心引擎 —— Lucene
ES 很了不起,需要使用搜索技术的互联网公司大半都在使用他,但是它的核心引擎却是另一个开源框架 —— Lucene。ES 只是在 Lucene 的基础上穿了一件华丽的外衣...
2019-09-02 09:20:00
333
原创 字节跳动面试题 —— 水壶问题
原题:给你一个装满水的 8 升满壶和两个分别是 5 升、3 升的空壶,请想个优雅的办法,使得其中一个水壶恰好装 4 升水,每一步的操作只能是倒空或倒满。图片理解了这个题目...
2019-08-27 10:13:28
3851
转载 分布式图数据库 Nebulan Graph 有奖捉虫计划正式开启
众测 Banner 01.pngNebulan Graph 捉虫计划是开源的分布式图数据库 —— Nebula 发起的「找 Bug」活动,旨在发动开源社区的力量共建图数...
2019-08-22 09:20:00
154
原创 搜索技术的秘密(一):概览
「多字段搜索」是一个非常复杂的话题,设想你有一堆日志记录,有很多字段。然后产品经理希望可以通过各种组合字段进行搜索,比如根据时间段、用户 ID、行为类型、目标 ID 等,...
2019-08-19 09:20:00
819
原创 面试题 —— 数字幻方
请将 1~9 这 9 个数字填入 3x3 的矩阵,使得矩阵的横三行竖三列以及两对角线的数字和相等,找出所有的填充方案。比如下面的这个幻方就是满足条件的方案之一6 cel...
2019-08-17 09:03:18
246
原创 深圳 GIAC 技术大会 Redis 演讲文字稿
观众朋友们,我是来自掌阅的工程师钱文品,今天我带来的是分享主题是:Redis 在海量数据和高并发下的优化实践。Redis 对于从事互联网技术工程师来说并不陌生,几乎所有的...
2019-06-23 16:28:26
228
原创 布隆过滤器过时了,未来属于布谷鸟过滤器?
为了解决布隆过滤器不能删除元素的问题,布谷鸟过滤器横空出世。论文《Cuckoo Filter:Better Than Bloom》作者将布谷鸟过滤器和布隆过滤器进行了深入...
2019-06-09 09:10:31
192
原创 深入理解 hash 结构的另一种形式 —— 开放地址法
本文我们来探讨一个数据结构的基础话题:hash 结构HashMap 无 Java 人不知无 Java 人不晓,它使用开链法处理 hash 碰撞,将碰撞的元素用链表串起来挂...
2019-06-06 09:20:00
113
转载 Redis 精确去重计数 —— 咆哮位图
如果要统计一篇文章的阅读量,可以直接使用 Redis 的 incr 指令来完成。如果要求阅读量必须按用户去重,那就可以使用 set 来记录阅读了这篇文章的所有用户 id,...
2019-06-04 09:29:28
560
转载 分布式系统的可靠性指的是什么 —— 你可能从来就没有认真思考过
本文节选之 DDIA 《Design Data Intensive Applications》,DDIA是一本神书,是一本可以让很多高级资深工程师醍醐灌顶的书。人们对于一...
2019-06-02 10:25:15
520
原创 关于服务限流的一些思考
限流的价值感 限流必然是很有价值的,在系统资源不足时面对外部世界的不确定性(突发流量,超预期的用户)而形成的一种自我保护机制。 但是价值感是很低的,因为99.99%的时...
2019-06-01 12:32:32
121
转载 RabbitMQ 和 Kafka 的消息可靠性对比
RabbitMQ和Kafka都提供持久的消息保证。两者都提供至少一次和至多一次的保证,另外,Kafka在某些限定情况下可以提供精确的一次(exactly-once)保证。...
2019-05-20 16:49:15
779
转载 掘金 MySQL 小册的艰辛创作历程
精诚所至,金石为开。在彼时对数据库“进阶”的理解只限于为WHERE条件中的列加索引罢了,从未想过之后会为MySQL写一本系统的书。不过今日《MySQL是怎样运行的:从根儿...
2019-05-13 10:57:45
2267
原创 一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现
折腾了一周的 Java Quartz 集群任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多节点(多进程)环境下 Quartz 似乎无法动态增减任务,恼火。无奈之下...
2019-04-29 17:30:04
136
转载 RabbitMQ 消息可靠性、延时队列以及高可用集群
上周末参加了阿里云栖社区举办的技术分享会,我分享的主题是 RabbitMQ,第一次在上百人面前做技术分享,略有紧张。回家后看了一下视频回放才敢相信原来自己讲的并没有自己想...
2019-04-22 19:02:21
173
转载 一天彻底搞懂 Git 《Git 原理详解及实用指南》
我是扔物线,Android 开发者,开源贡献者,在 GitHub 上有 4.9k followers 和 7.8k stars ,个人的 Android 开源库 Mate...
2019-03-24 08:57:38
1052
转载 深入Go的底层,带你走近一群有追求的人
上周六晚上,我参加了“Go夜读”活动,这期主要讲Go汇编语言,由滴滴曹春晖大神主讲。活动结束后,我感觉打通了任督二脉。活动从晚上9点到深夜11点多,全程深度参与,大呼过瘾...
2019-03-23 09:20:00
110
原创 布隆过滤器实战【防止缓存击穿】
为什么引入我们的业务中经常会遇到穿库的问题,通常可以通过缓存解决。 如果数据维度比较多,结果数据集合比较大时,缓存的效果就不明显了。 因此为了解决穿库的问题,我们引入Bl...
2019-03-22 10:22:00
4552
转载 图解Go语言内存分配
Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内存分配都需...
2019-03-15 10:08:31
119
转载 阿里巴巴 Nacos 分布式配置中心原理
动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息。动态配置中心可以实现配置更新时无需重...
2019-03-12 11:08:51
421
转载 一个字节的网络漫游故事独白
大家好,给大家介绍一下,我是一个字节。相比于你们人类据说即将达到的百岁人生的寿命,我的一生简直不直一提(我只能存活零点几个毫秒)。也许只有那些码农才会了解我,而且也只有一...
2019-03-11 09:48:51
119
原创 一种简单易懂的 MyBatis 分库分表方案
数据库分库分表除了使用中间件来代理请求分发之外,另外一种常见的方法就是在客户端层面来分库分表 —— 通过适当地包装客户端代码使得分库分表的数据库访问操作代码编写起来也很方...
2019-03-10 10:01:53
356
转载 MySQL 是怎样运行的:从根儿上理解 MySQL
MySQL 是怎样运行的:从根儿上理解 MySQL小孩子 著12 小时 · 25 小节从根儿上理解 MySQL,让 MySQL 不再是一个黑盒小册内容小册介绍MySQL...
2019-03-07 09:20:00
9544
原创 轻量级 Web 框架 Gin 结构分析
Go 语言最流行了两个轻量级 Web 框架分别是 Gin 和 Echo,这两个框架大同小异,都是插件式轻量级框架,背后都有一个开源小生态来提供各式各样的小插件,这两个框架...
2019-03-04 10:52:30
744
转载 分布式系统技术难题--异地多活
什么是异地多活?为了保证系统能够对机房级别的故障进行容错,不会使系统不可用,这就需要在机房级别对系统进行冗余处理。而这就需要在架构上进行良好的设计。来面对多机房场景下的技...
2019-02-26 11:34:07
503
原创 深入 LevelDB 数据文件 SSTable 的结构
LevelDB 的键值对内容都存储在扩展名为 sst 的 SSTable 文件中,SSTable 的磁盘文件结构比较复杂,读者在阅读本节之前要做好心理准备。如果有任何看得...
2019-02-19 09:20:00
608
转载 Golang之轻松化解defer的温柔陷阱
defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。深受Go开发者...
2019-02-14 10:38:04
80
转载 日活亿级用户的服务器架构要怎么搭?
引言本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那这是怎么分的呢...
2019-01-30 09:10:00
145
转载 深度解密HTTP通信细节
本文作者:饶全成,中科院计算所硕士,滴滴出行后端研发工程师。上一篇文章中,我们学会了用wireshark和tcpdump来分析TCP的“三次握手,四次挥手”,非常好用。这...
2019-01-18 12:02:11
110
原创 BAT 经典算法笔试题 —— 磁盘多路归并排序
在 LevelDB 数据库中高层数据下沉到低层时需要经历一次 Major Compaction,将高层文件的有序键值对和低层文件的多个有序键值对进行归并排序。磁盘多路归并...
2019-01-17 10:29:06
99
转载 阿里开源限流组件 Sentinel 集群流控全解析
为什么需要集群流控功能?假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台)。这时候我们很自然地就想到,找一个 se...
2019-01-17 10:29:06
757
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人