当前位置: 首页 > 专利查询>微软公司专利>正文

优先散列索引制造技术

技术编号:7564273 阅读:192 留言:0更新日期:2012-07-14 14:39
优先散列索引为搜索查询项提供倒排列表的有效查找。优先散列索引是其中用于项的散列值基于这些项的重要性和存储设备的访问速度而被分布在多个存储设备上的数据结构。项被组合到搜索列表中,其中每一个搜索列表包括每一个存储设备上的存储位置。当接收到搜索查询时,项被识别并被散列到第一存储设备上的位置,并且为该项生成独特的散列值。存储设备上用于该项的搜索列表的位置被顺序读取,直至定位用于该项的散列值来访问用于该项的倒排列表。

【技术实现步骤摘要】
优先散列索引
技术介绍
因特网上可用的信息和内容的数量继续快速增长。考虑到大量的信息,开发了搜索引擎来便于搜索电子文档。特别地,用户可以通过输入包括对用户而言可能感兴趣的一个或多个项的搜索查询来搜索信息和文档。在接收到来自用户的搜索查询之后,搜索引擎基于搜索查询来识别相关的文档和/或网页。由于其实用性,网络搜索即对于用户发出的搜索查询而查找相关的网页和文档的处理现今可以说已变成因特网上最受欢迎的服务。搜索引擎通过抓取(crawl)文档以及在搜索索引中为与这些文档相关的信息编制索引来操作。搜索索引时常包括用于在所抓取的文档中找到的各个项的倒排列表(posting list)。每一个倒排列表识别其中找到特定项的文档。当接收到搜索查询时,搜索引擎采用搜索索引来识别与搜索查询相关的文档。以这种方式使用搜索索引允许快速检索用于查询的信息。如果没有搜索索引,搜索引擎将需要搜索文档集来找到相关结果,而这将花费不可接受的时间量。在执行搜索时,搜索引擎通常采用各种机制来提供搜索查询项的快速查找,以便定位和检索倒排列表。基于树的结构和内存中的散列表是用于这个目的的常见方法的示例。但是,这些现有机制在扩展到非常大量的索引对象时并不是真正有效的,并且查找性能未必是足够的。
技术实现思路
提供这个概述部分来以简化的形式介绍下面在具体描述部分中进一步描述的概念的选择。这个概述部分并不旨在标识所请求保护主题的关键特征或基本特征,也不旨在用作确定所请求保护主题的范围的辅助手段。本专利技术的实施例涉及为搜索查询项提供倒排列表的有效查找的优先散列索引。优先散列索引是其中用于项的散列值基于项重要性而被分布在从最快存储设备到最慢存储设备的具有不同访问速度的存储设备层次上的数据结构。一些存储设备包括条目,其中每一个条目包括具有倒排列表的地址的散列值。在一些实例中,如果倒排列表是足够小的,那么倒排列表被内联(inline)存储。此外,如果该层次中的存储设备具有明显的输入/输出等待时间(例如,硬盘驱动器)以致多次访问该设备将显著影响性能,那么可以将倒排列表内联存储在存储设备上。例如,在一些实施例中,该层次中较高的存储设备可以存储各自包括具有倒排列表的地址的散列值的条目,而最终的存储设备可以与散列值一起内联存储倒排列表。项被组合到搜索列表中,其中每一个搜索列表包括每一个存储设备上用于存储搜索列表中的项的散列值的位置。当接收到搜索查询时,项被识别并被散列,以选择第一设备上的位置和生成对于该项而言是独特的散列值。用于该项的搜索列表的存储设备的位置被顺序读取,以定位与该散列值相匹配的条目和访问用于该项的倒排列表。附图说明下面参考附图来详细描述本专利技术,其中图I是适合于在实现本专利技术的实施例中使用的示例计算环境的框图;图2是说明根据本专利技术的实施例用于搜索索引的优先散列索引的图示;图3是其中可以采用本专利技术的实施例的示例系统的框图;和图4是显示根据本专利技术的实施例用于使用优先散列索引来访问搜索索引中的数据的方法的流程图。具体实施方式本专利技术的主题在此处利用特异性来描述以满足法定要求。但是,该描述本身并不旨在限制这个专利的范围。相反,专利技术人已考虑结合其他的现在或未来的技术,所请求保护的主题也可以采用其他的方式来体现,以包括不同的步骤或与这个文档中所描述的相类似的步骤的组合。此外,虽然在这里可以使用术语“步骤”和/或“方框”来暗示所采用的方法的不同元素,但是除非且除了明确地描述个别步骤的顺序之外,这些术语不应被解释为暗示在这里披露的各个步骤之中或之间的任何特定顺序。本专利技术的实施例涉及优先散列索引,其是驻留在若干层的存储设备上的数据结构,用于提供搜索索引中项的倒排列表的有效查找。应该注意“项(term)”在这里被宽泛地用来指示在利用搜索索引进行索引的文档中找到的单个词或多个词(例如,短语、n字尾 (n-gram)、n元组等等)。优先散列索引围绕为利用搜索系统索引进行索引的项的群组提供“搜索列表”来构造。概念地,搜索列表是被分布在每一个存储设备的存储位置上的列表结构。每一个搜索列表中的项被散列为独特的数字,而从这些独特的数字中导出两个散列值。用于搜索列表中的所有项的第一散列值在第一存储设备上选择相同的位置,其中所述位置用作搜索列表中的起点。第二散列值消除搜索列表中的各个项的歧义,并且基于项重要性(从最高到最低)被存储在从最快存储设备到最慢存储设备的不同存储设备中。项重要性可以基于诸如与该项相关联的倒排列表的长度或访问统计信息之类的因素。在本专利技术的一些实施例中,较高层的存储设备(S卩,较快的存储设备)存储各自一般包括用于项的散列值以及用于项的倒排列表的地址的数据条目。在一些实例中,如果倒排列表是短的,那么可以与散列值一起内联存储倒排列表。相反,较低层(或最低层)的存储设备(g卩,一个或多个最慢的存储设备)包括各自一般包括用于项的散列值的数据条目, 其中用于该项的倒排列表被内联存储。特别地,如果该层次中的存储设备具有显著的输入 /输出等待时间(例如,硬盘驱动器)以致多次访问该设备将显著影响性能,那么倒排列表可以被内联存储在那个存储设备上。在操作中,在接收到搜索查询时,识别和散列项,以导出两个散列值。第一散列值选择第一存储设备中的存储位置。该存储位置被读取,以确定它是否包含用于第二散列值的数据条目。如果在该存储位置上找到包括第二散列值的数据条目,则用于该项的倒排列表的地址从该数据条目中进行检索并被用于访问倒排列表。例如,第一存储设备可以是 RAM,而倒排列表被存储在硬盘驱动器中。这样,存储在RAM上的地址与硬盘驱动器上存储用于该项的倒排列表的位置相对应。如果第一存储设备上的存储位置不包含第二散列值,该处理通过检索在该层次的存储设备中的下一个存储设备上的存储位置的地址来继续。下一个存储设备上的存储位置包含搜索列表的延续。该处理可以通过顺序读取该层次中的存储设备上的存储位置来继续,直至定位第二散列值。如果在最后存储设备的存储位置上找到第二散列值,则倒排列表与第二散列值内联存储。这样,将只需要访问一次最后的存储设备(即,最慢的存储设备)来访问倒排列表。相应地,在一个方面中,本专利技术的实施例涉及用于为搜索引擎存储优先散列索引的系统。该系统包括第一类型的第一数据存储设备。第一数据存储设备具有多个存储位置, 其中第一数据存储设备上的第一存储位置存储多个数据条目,其中每一个条目包括与项相对应的散列值以及定位用于该项的倒排列表的地址。第一存储位置也存储第二数据存储设备上的第二存储位置的地址。第二数据存储设备具有第二类型并且具有多个存储位置,其中第二数据存储设备上的第二存储位置存储多个数据条目,其中每一个数据条目包含与项相对应的散列值以及定位用于该项的倒排列表的地址。第二存储位置也存储第三数据存储设备内的第三存储位置的地址。第三数据存储设备具有第三类型并且具有多个存储位置, 其中第三数据存储设备上的第三存储位置存储多个数据条目,其中每一个数据条目包含与项相对应的散列值以及用于该项的倒排列表。在另一实施例中,本专利技术的一个方面涉及用于访问搜索索引中的数据的方法。该方法包括接收与搜索查询中的搜索项相对应的散列值。该方法也包括识别第一存储设备上的第一存储位置,以及确定散列值是否存储在第一存储位置上。如果散列值本文档来自技高网...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:KM里斯维克M霍普克罗夫特JG贝内特K卡尔亚纳拉曼T基林比沈徽
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术