搜索引擎索引切分策略
发布时间:2009-06-11 浏览: 次
为了实现对资源的快速定位,大规模信息检索系统通常都会采用索引技术,其中使用最广泛的是倒排列表( inverted list ) , 其基本形式是根据关键词列出一个数据集中所有包含该关键词的文档 , 即,这样,给定一个关键词,根据其倒排列表即可快速查找出对应的文档.另外也有采用其他索引技术的,比如后缀数组(suffix array)。 在小规模搜索系统中,索引通常采用集中式结构,而对于大规模搜索系统,通常需要采用分布式索引.在 P2P搜索系统中如何对索引进行切分是一个必需要解决的重要问题.以倒排列表为例,目前主要存在两类切分方法:基于文档的切分(Document-based Partitioning)和基于关键词的切分(Keyword-based Partitioning) 基于文档的索引切分策略将系统的整个数据集按照文档切分成多个子集,每个结点负责存储和维护一个文档子集的索引,在查询的时候,查询请求结点通过洪泛或随机走步的方式把查询请求转发到各个结点上,由各个结点在本地索引中进行查询. 基于文档的索引切分策略实现起来比较简单,而且很容易做到各个索引结点的负载均衡,它在紧耦合系统中(结点数目一般比较少)得到了很好的应用.但由于它在查询处理时必须将查询分发到每一个结点上以得到精确的搜索结果,这样无疑增加了系统查询开销,从而也带来了系统的可扩展性问题. 基于关键词的索引切分策略将系统的整个数据集的索引按照关键词切分成多个部分,每个结点存储一部分索引,也就是说每个结点负责存储和维护一部分关键词的索引,一个结点上拥有多个关键词的索引,而不同结点上的索引是正交的(在实际系统中,为了提高系统可用性,通常都有索引备份策略),在查询的时候,由查询请求结点根据查询词将查询请求发送到存储这些关键词索引的结点上 基于关键词的索引切分由于处理一个查询请求只需要少数几个结点的参与,因此可以同时支持较多的查询,提高了系统吞吐率.但是由于它在处理多关键词查询时需要在结点之间传递索引用于求交运算,因此当系统中索引的数据量很大时,查询处理需要占用大量的网络带宽,通信延迟也会急剧增长.在这方面有一些方法可以用来减小索引传输的通信量,比如索引压缩技术、 Bloom Filter 技术等.此外,基于关键词的切分方式还面临着负载不均衡问题,一方面,关键词在文档中的分布是不均衡的,有的关键词索引会很大,而有的关键词索引则很小,这就造成各结点存储的索引量很难达到均衡;另一方面,各结点的查询负载也是不均衡的,容易形成查询热点问题.
资讯推荐
- 关于2016年春节放假安排2016-01-26
- 为了方便同事们提前订票回家过年,现在公司春节放假时间安排通知。
春节放假时间为:2016年2月3到 2月14日。共11天。
广大客户在我...
- 如何做好创业型网站运营2016-03-07
- 1、紧记网站定位,制订网站长期与短期经营目标。
网站定位是网站发展之本,不管是营销型网站建设还是创业型网站运营,网站经营偏离了定位或定位不...
- 奢侈品B2C的网站规划该如何做2016-03-07
- 电子商务(EC,也就是E-Commerce的缩写),关于电子商务的定义世人众说纷纭,从不同的角度出发有不同的定义。可以理解为以 Internet为依托,借助一定...
- 微信:支付宝抢红包要到春晚,我们今晚就开始!2016-01-26
- 昨天上午 11 点,支付宝通过一个长微博,公布了大家期待已久的与央视春晚独家合作的互动玩法,核心点在于必须主动通过社交拓展才能够获得最多的红包。
支...