首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
golang
订阅
爱上雪纷飞
更多收藏集
微信扫码分享
微信
新浪微博
QQ
25篇文章 · 0订阅
用 Golang 写一个搜索引擎 (0x00)--- 从零开始
很早就想写一系列的这样的文章了,之前在一个电商公司做搜索,对搜索引擎有一些认识,来到一个新的创业公司以后非常高兴还有机会继续做这方面的事情,虽然领域已经变了,而且不是做搜索了,但是技术还是那些技术,并且有机会接触到了 Go 语言,对于一个将近 10 年 C/C++ 的程序员来说,Go 的一些…
新手 go 程序员的最佳实践
新手 go 程序员的最佳实践
用 Golang 写一个搜索引擎 (0x04) --- B + 树
本篇较长较枯燥,请保持耐心看完。 前面两章介绍了一下倒排索引以及倒排索引字典的两种存储结构,分别是跳跃表和哈希表,本篇我们介绍另一种数据结构,他也被大量使用在信息检索领域,我在 github 上实现的搜索引擎的词典也是用的这个数据结构,它就是 B + 树。 首先,我们看看什么是树,树是程…
用 Golang 写一个搜索引擎(0x09)— 数据增,删,改
根据某位和我同姓的朋友的建议,后面的文章都会加上副标题,方便查阅。 今天的文章会比较短,很快就能看完。 按照步骤,说完段层以后,应该就开始涉及到索引层了,但我想说的是一个分布式的搜索引擎,所以除了索引层以外,还有个分片层,这两个概念是紧密联系在一起的,我怕说不好,所以在说索引层…
用 Golang 写一个搜索引擎(0x08)--- 索引的段
我觉得这个标题应该改改了,我写下来其实是告诉大家怎么写一个搜索引擎,并没有涉及太多的 Golang 的东西,我觉得这样也挺好,熟悉了原理,用什么实现其实并不重要了,而且说说原理比说代码更实在。 之前已经说了底层的数据结构了,包括倒排和正排索引。今天我们上一层,来说说索引的字段和段。…
Go 语言并发模型:使用 context
在 Google 内部,我们开发了 Context 包,专门用来简化 对于处理单个请求的多个 goroutine 之间与请求域的数据、取消信号、截止时间等相关操作,这些操作可能涉及多个 API 调用。你可以通过 go get golang.org/x/net/context 命令获取这个包。本文要讲的就是如果使用这个包,同时也会提供一个完整的例子。
用 Golang 写一个搜索引擎(0x03)--- 跳跃表,哈希表
前面已经说了倒排索引的基本原理了,原理非常简单,也很好理解,关键是如何设计第二个倒排表,倒排表的第二列也很好设计,第一列就是关键了,为了满足快速查找的性能,设计第一列的结构,我们需要满足以下两个条件。 查找非常快,能在极短的时间内找到我们需要的关键词所在的位置。 添加关键词也需…
安利一个好用的 Golang 单元测试框架:gocheck
Golang 下如何写单元测试?官方提供的 testing package 略显简陋,不过好在我们有 Gocheck。 ### 什么是好的单元测试? 在进入正题前,先来温习下前人总结的单元测试几条原则: 1 单元测试应该在最低的功能 / 参数上验证程序的正确性 ... 3 单元测试过后,机器状态保持不变 ...