手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
人工智能
技术频道
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ CMS系统
▸ 服务器
▸ 数据库
公众号推荐
微信公众号搜
"智元新知"
关注
微信扫一扫可直接关注哦!
编程之家
程序开发
程序开发
编程之家(jb51.cc)编程百科栏目主要推荐程序员常用编程技术介绍,以下是程序开发相关编程语言,主要信息提供给程序员快速了解所需要学习的编程技术语言。
用Golang写一个搜索引擎 0x00--- 从零开始
很早就想写一系列的这样的文章了,之前在一个电商公司做搜索,对搜索引擎有一些认识,来到一个新的创业公司以后非常高兴还有机会继续做这方面的事情,虽然领域已经变了,而且不是做搜索了,但是技术还是那些技术,并且有机会接触到了Go语言,对于一个将近10年C/C++的程序员来说,Go的一些特质让我觉得非常舒服,可参见我之前的这篇文章。 从公司项目衍生出了一个自己的搜索引擎项目,然后有了这篇文章。 先聊聊目标吧
用Golang写一个搜索引擎0x01--- 基本概念
从零开始,写一个搜索引擎 (0x01) 第零部分我们已经列了一个提纲了,这一篇文章开始要详细说说了。 搜索引擎基本概念 在说搜索引擎架构分层之前,我们先确定几个搜索引擎的概念。 文档,搜索引擎的基本数据单元,比如一张网页,一个商品,多个文档合在一起就是一个搜索引擎的完整数据 倒排索引,正排索引,存储在搜索引擎内部的数据结构,也是搜索引擎最底层的数据结构。 索引器,将文档数据生成可供搜索的倒排索引和
用Golang写一个搜索引擎0x02--- 倒排索引技术
这一篇,我们来说说搜索引擎最核心的技术,倒排索引技术,倒排索引可能需要分成几篇文章才说得完,我们先会说说倒排索引的技术原理,然后会讲讲怎么用一些数据结构和算法来实现一个倒排索引,然后会说一个索引器怎么通过文档来生成一个倒排索引。 倒排索引 什么是倒排索引呢?索引我们都知道,就是为了能更快的找到文档的数据结构,比如给文档编个号,那么通过这个号就可以很快的找到某一篇文档,而倒排索引不是根据文档编号,而
用Golang写一个搜索引擎0x02
这一篇,我们来说说搜索引擎最核心的技术,倒排索引技术,倒排索引可能需要分成几篇文章才说得完,我们先会说说倒排索引的技术原理,然后会讲讲怎么用一些数据结构和算法来实现一个倒排索引,然后会说一个索引器怎么通过文档来生成一个倒排索引。 倒排索引 什么是倒排索引呢?索引我们都知道,就是为了能更快的找到文档的数据结构,比如给文档编个号,那么通过这个号就可以很快的找到某一篇文档,而倒排索引不是根据文档编号,而
用Golang写一个搜索引擎0x03--- 跳跃表,哈希表
前面已经说了倒排索引的基本原理了,原理非常简单,也很好理解,关键是如何设计第二个倒排表,倒排表的第二列也很好设计,第一列就是关键了,为了满足快速查找的性能,设计第一列的结构,我们需要满足以下两个条件。 查找非常快,能在极短的时间内找到我们需要的关键词所在的位置。 添加关键词也需要比较快,能保证输入文档的时候尽可能的快。 除了上面两个条件以外,还有一些加分项: 如果能尽可能少的使用内存,那肯定是好的
用Golang写一个搜索引擎 (0x04) --- B+树
本篇较长较枯燥,请保持耐心看完。 前面两章介绍了一下倒排索引以及倒排索引字典的两种存储结构,分别是跳跃表和哈希表,本篇我们介绍另一种数据结构,他也被大量使用在信息检索领域,我在github上实现的搜索引擎的词典也是用的这个数据结构,它就是B+树。 首先,我们看看什么是树,树是程序设计中一个非常基础的数据结构,记得大学时候的数据结构课,链表,栈,队列,然后就是树了,虽然那时候想必大家都被前序遍历,中
用Golang写一个搜索引擎0x05--- 文本相关性排序
上面我们已经说过了一些倒排索引的东西,并且也知道了如何来实现一个倒排索引完成检索功能,那么检索完了以后如何排序呢,这一篇简单的说一下倒排索引的文本相关性排序,因为排序实在是太复杂了,我们这里就说说文本的相关性排序,而且是最简单的TD-IDF排序,之后有机会可以再说说整个搜索的排序算法有些什么。 文本相关性排序 首先明白几个概念: Term,分词以后最小的单位,比如用Golang写一个搜索引擎,分词
用Golang写一个搜索引擎0x06--- 索引构建
不知不觉写到第七篇了,按这个节奏,估计得写到15到20篇左右才能写完,希望自己能坚持下去,之前写代码的时候很多东西并没有想得那么细致,现在每写一篇文章还要查一些资料,确保文章的准确性,也相当于自己复习了一下吧,呵呵。 先说一下,关于倒排文件,其实还有很多东西没有讲,到后面再统一补充一下吧,主要是倒排文件的压缩技术,这一部分因为目前的存储空间不管是硬盘还是内存都是很大的,所以压缩技术用得不是很多了。
用Golang写一个搜索引擎0x07--- 正排索引
最近各种技术盛会太多,朋友圈各种刷屏,有厂商发的各种广告,有讲师发的各种自拍,各种参会的朋友们各种自拍,好不热闹,不知道你的朋友圈是不是也是这样啊,去年还没这么多技术会议,今年感觉爆发了,呵呵,真是一个互联网技术的好时代,而且还有各种撕B可看,真想八一八,怕得罪人,我们这种码农还是专注技术专注写代码吧。 你有什么想了解的也可以给我留言哈,欢迎交流,我的工作之前主要做的是搜索的,也做推荐和广告,这部
用Golang写一个搜索引擎0xFF--- 搜索引擎排序
今天这一篇的序号是0xFF,算是外篇吧,和Golang没什么关系,和代码也没什么关系,今天说说搜索引擎的排序吧。 一个标准的搜索引擎有三个最重要的部分,爬虫,检索,排序。 爬虫水太深了,各种黑科技层出不穷,光代理的选择就有各种黑科技,而且只有百度这种全网搜索引擎或者某些靠爬数据的细分领域的垂直搜索引擎才需要爬虫,重要的是我也不是很了解这一块,所以就说不了了,我么默认数据都是自有的数据,类似电商的搜
用Golang写一个搜索引擎0x08--- 索引的段
我觉得这个标题应该改改了,我写下来其实是告诉大家怎么写一个搜索引擎,并没有涉及太多的Golang的东西,我觉得这样也挺好,熟悉了原理,用什么实现其实并不重要了,而且说说原理比说代码更实在。 之前已经说了底层的数据结构了,包括倒排和正排索引。今天我们上一层,来说说索引的字段和段。 字段这个上一篇已经介绍过了,字段的概念实际上是搜索引擎索引中我们能看到的最底层的东西,也是对外暴露的最底层的概念,在字段
用Golang写一个搜索引擎0x09— 数据增,删,改
根据某位和我同姓的朋友的建议,后面的文章都会加上副标题,方便查阅。 今天的文章会比较短,很快就能看完。 按照步骤,说完段层以后,应该就开始涉及到索引层了,但我想说的是一个分布式的搜索引擎,所以除了索引层以外,还有个分片层,这两个概念是紧密联系在一起的,我怕说不好,所以在说索引层和分片层之前,我们先直观的对索引有个了解,并且先熟悉一下索引层的一些特殊的数据结构以及一些常用算法,让大家对搜索引擎有个整
用Golang写一个搜索引擎0x0A--- 数据检索,败者树,K路求交
终于把序号写到了第十篇(其实已经是第13篇了),前面写了几个外篇,我看上篇机器学习的那篇看的人很多,后面会再找一两个点再写写,后面可能会算法部分和架构部分穿插着写了,想到哪里就写哪里了,今天我们继续我们的搜索引擎架构部分,主要来说说数据的检索。 对之前文章感兴趣的话,可以点击下面的链接,或者直接在SF上看整个专栏--吴说 搜索架构 用Golang写一个搜索引擎(0x00)从零开始 用Golang写
用Golang写一个搜索引擎0x0B--- 第一部分结束
这一篇算给这一个系列告一个小的段落,之前开始写这些文章的时候,只是想把自己最近用Golang写的这个搜索引擎说一说,准备了大概3,4篇的量,但是一写下来,发现有点收不住,写到后面其实和Golang没什么关系了,主要在写搜索引擎的架构和一些数据结构了,我觉得这比写代码注释有用吧,而且通过这样写下来,我自己对这些个数据结构的理解也更深了。 一个月的时间,写了14篇了,虽然14篇文字不足以说明一个搜索引
<meta>标签的作用
<META> 是放于 <HEAD> 与 </HEAD>之间的标记,功用与变化等对,所以我公式化地介绍。 <meta name="Description" content="This is Chris's Home Page"> 该网页的描述,作用于搜索引擎的登录。 <meta name="Keywords" content="Chris, Web, Music, photo
细数meta标签的奥秘
因为看到了一个很不错的h5自适应网站,觉得很不错,于是好奇心作祟,让我翻开了它的源码一探究竟, 最先研究的是它的meta标签,好了,废话不多说,以下是我总结的和比较实用的meta标签,如有错误, 请多多指教。 先来整个meta标签列表,方便各位赏光,嘻嘻嘻。。。 1. <meta name="viewport" content="width=device-width, initial-scale=
Ajax加载页面如何刷新地址栏URL的问题
近期,有一位網友問我關于跨頁播放音樂的問題。 在網上搜索過,有使用iframe實現的,有使用ajax方法實現的。 這兩種方法雖然可以很好的實現不刷新音樂播放器,而使用iframe/ajax做到刷新頁面的效果。這樣音樂,即使在你更新網頁的時候也不會停止了。 但即使音樂能夠貫穿整站,但是Url在地址欄并不會改變。 那么我的介意是參照facebook的做好,使用頁內鏈接改變地址欄Url。 只需要一句代碼
怎么认识ajax
ajax是asynchronous javascript and xml的缩写,是javascript、xml、css、DOM等多个技术的组合。 Ajax的工作原理是一个页面的指定位置可以加载另一个页面所有的输出内容,这样就实现了一个静态页面也能获取到 数据库中的返回数据信息了。所以ajax技术实现了一个静态网页在不刷新整个页面的情况下与服务器通信, 减少了用户等待时间,同时也从而降低了网络流量,
AJax+XML+HTML+CSS+DIV+PHP+MYSQL创建网站--Java免费学习网
AJax AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。 使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。 XM
Ajax实现搜索引擎自动补全功能
每当我们遇到一些问题时候,我们会百度一下,你是有过我们的问题还没打完就已经出现的经历? 如下图: 天猫: 京东: 这时候的你是否想到如何实现这个功能? 我们的网页明明没有刷新,可是却出现了数据的交互,也就是Ajax的强大之处。 下面以一个例子来实现。 搜索框和搜索按钮,我们希望在搜索框输入部分书名时,能够实现书名的自动补全功能。每当点击了相应的书名,就把内容输入到搜索框。 对应的代码 Search
上一页
8
9
10
11
12
13
14
15
16
下一页
小编推荐
热门标签
更多
python
JavaScript
java
HTML
reactjs
C#
Android
CSS
Node.js
sql
r
python-3.x
MysqL
jQuery
c++
pandas
Flutter
angular
IOS
django
linux
swift
typescript
路由器
JSON
路由器设置
无线路由器
h3c
华三
华三路由器设置
华三路由器
电脑软件教程
arrays
docker
软件图文教程
C
vue.js
laravel
spring-boot
react-native