倒排索引、正排索引系列一
2014-04-17 11:40
337 查看
1. 搜索引擎简介
搜索引擎顾名思义就是:从千万设置亿、兆级别的数据中查询出自己想要的信息,比如:谷歌和百度索引引擎最重要的是建立倒排索引和正排索引【不是必须的】
2. 倒排索引简介
倒排索引的名词解释
单词【key】:搜索框中输入的关键词文档【doc】:搜索结果的基本信息,比如百度这样的搜索引擎,doc是一个一个带有特定信息【关键词,出现的次数,出现的位置.....】的网页;
如果是淘宝的搜索引擎,doc 就是一个一个包含特定信息【宝贝的id、宝贝的类目.......】的宝贝;当然key和doc 要有一定的相关性,这个是算法来计算的
倒排索引项:每个doc 包含一些特定信息,就叫倒排索引项
词典项:把我们搜索的单词叫词典项
倒排索引表:肯定会有多个doc 包括一个单词,这样一个词典项+ 包括这个词典项的所有doc 构成 倒排列表
倒排索引:数亿万级的倒排索引表构成倒排索引
一般为了减少索引的数量和搜索的时间,在一个搜索引擎中往往按照不同的纬度分成多份倒排索引
下面是倒排索引的机构图:
绑定关系:建立索引之前,手续要把用户常用的关键词统计出来,并按照这些词典项进行建立索引;如果是搜索广告要卖关键词,需要让广告主对关键词和doc 【网页、或者电商的宝贝】进行绑定,【当然这个绑定要有原则,需要算法计算相关性进行审批】绑定关系可以单独建立一个索引。
query result:用户输入的关键词中有很多是错误的或者在现有索引里面没有的,这是要把用户查询的关键词改成用户可能感兴趣的关键词比如用户输入 iphon --> iphone 。
3. 正排索引简介
正排索引因为查询效率是O(n),所以用的不是很多;更多的时候是用于倒排索引的辅助作用;正排索引用的场景:每个doc 里面的关键字基本是唯一的就是,如果建立倒排索引基本也是1个关键词对应一个doc;直接建立正排就可以了;正排索引建立起来简单。
相关文章推荐
- Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效
- MySQL优化之COUNT(*)效率
- linux2.6.30.4内核移植(3)——yaffs文件系统移植
- 逆向运动学功能介绍
- Discuz X3插件开发基础教程
- IOS中定时器NSTimer的开启与关闭
- 模拟计算机网络中的零比特填充
- 我和她
- U盘乱码修复方法
- 模拟计算机网络中的零比特填充
- Are headphones plugged in? iOS7
- 查看CentOS版本方法
- Hadoop到底是什么?
- UITableViewCell的separatorInset属性
- Js刷新页面的几种方法(转)
- 常用开源项目及工具汇总——持续更新
- 谷歌jquery开发地址引用
- cvKMeans2函数用法概述
- bundle install 长时间无响应的原因及解决办法
- JDBC数据类型