CN102419768B - 用于文档搜索的搜索高速缓存 - Google Patents

用于文档搜索的搜索高速缓存 Download PDF

Info

Publication number
CN102419768B
CN102419768B CN201110345038.9A CN201110345038A CN102419768B CN 102419768 B CN102419768 B CN 102419768B CN 201110345038 A CN201110345038 A CN 201110345038A CN 102419768 B CN102419768 B CN 102419768B
Authority
CN
China
Prior art keywords
search
cache
inquiry
computing equipment
document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110345038.9A
Other languages
English (en)
Other versions
CN102419768A (zh
Inventor
S·K·纳特
P·K·阿蒂瓦拉普
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102419768A publication Critical patent/CN102419768A/zh
Application granted granted Critical
Publication of CN102419768B publication Critical patent/CN102419768B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3349Reuse of stored results of previous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及用于文档搜索的搜索高速缓存。此处描述了包括在计算设备处接收来自用户的查询的方法。该方法还包括至少部分基于所接收的查询来执行对一个或多个文档的搜索,其中执行所述搜索包括使得处理器通过利用保留在所述计算设备上的搜索高速缓存来执行所述搜索,其中所述搜索高速缓存包括结果高速缓存、索引高速缓存、布尔高速缓存。

Description

用于文档搜索的搜索高速缓存
技术领域
本发明涉及通信领域,尤其涉及文档搜索技术。
背景技术
当今由于计算设备减小的成本,许多个人具有多个计算设备,这些计算设备可包括但不限于台式计算机、膝上型计算机、多媒体播放器、移动电话、电子阅读器以及其他计算设备。由于个人可具有多个计算设备,因此个人的文档可跨这些多个设备分布。例如,个人的文档可包括文字处理文档、多媒体文件、图像、电子表格文档、HTML页面、高速缓存的HTML页面、以及其他文档。此外,许多在线服务允许个人将文档保留在在线存储位置。由此,对于任何特定个人,这样的个人可使用多个计算设备并具有多个跨这些计算设备分布的多个文档。
当前,对于用户跨多个计算设备在她的所有文档中进行搜索是相对困难的或昂贵的(在电池寿命的使用、带宽等方面)。在具体示例中,用户可具有跨多个计算设备分布的文档,并且可能希望通过利用移动电话在计算设备中搜索文档。如果移动电话没有被连接到网络,则在移动电话上进行的搜索的搜索结果将仅包括驻留在移动电话上的文档,而用户在其他计算设备上的其他文档将不被包括在搜索结果中。因此,为使移动电话能够跨多个计算设备搜索文档,移动电话必须被连接到网络。
在示例性体系结构中,用户的每一计算设备通过到网络的连接来彼此通信。在这样的体系结构中,移动电话的用户可将查询传送给各计算设备中的每一个,并且搜索结果可从用户的每一计算设备被返回到移动电话。在另一示例中,用户的每一计算设备可将局部索引传送给协调器设备,诸如云计算设备,并且该协调器设备可跨用户的计算设备维护用户的文档的全局索引。在这一示例中,移动电话的用户将查询发送给协调器设备,并且协调器设备将查询的结果返回给移动电话。
然而,在以上提供的示例中,用户的各计算设备中的每一个必须被连接到网络,并且对于每一搜索都要求各计算设备之间的某一形式的网络通信。因此,执行交互式搜索的能力由于网络的等待时间而被禁止。另外,在必须将电能提供给用于建立和维护网络连接的移动设备的各组件时,移动设备的电池消耗得更快。此外,除非至少用于执行该搜索的计算设备维护与协调器设备的网络连接,否则跨计算设备对文档的搜索无法进行。
发明内容
以下是在本文详细描述的主题的简要概述。本发明内容不旨在是关于权利要求的范围的限制。
此处描述的是关于通过利用搜索高速缓存来搜索文档的各种技术。更具体地,此处描述的是关于利用搜索高速缓存来在跨多个计算设备分布的文档中进行搜索的技术,其中搜索高速缓存包括结果高速缓存、索引高速缓存和布尔高速缓存(诸如布隆过滤器)。在一示例中,搜索高速缓存可驻留在移动计算设备上,使得移动计算设备可搜索跨用户的多个计算设备分布的文档,而无需要求移动计算设备经由网络来传送查询并从分开的设备接收查询结果。然而,可以理解,可结合在通过万维网可用的文档中执行搜索来采用搜索高速缓存。
在示例性实施例中,协调器设备可维护特定用户的跨该特定用户的多个计算设备分布的文档的全局索引,该协调设备可以是个人计算设备或基于云的设备。例如,协调器设备可从用户的多个计算设备接收局部索引,并且可通过利用这样的局部索引来创建全局索引。全局索引可以是倒排索引,该倒排索引包括关键词以及与这些关键词对应的文档的身份和位置。协调器设备随后可从另一计算设备(例如移动计算设备)接收指示对搜索高速缓存的空间约束的数据。协调器设备可生成符合移动计算设备所指示的空间约束的搜索高速缓存,并且可将这一搜索高速缓存传送给移动计算设备。例如,协调器设备可确定结果高速缓存、索引高速缓存、布尔高速缓存的大小和内容。
如上所述,搜索高速缓存可包括众多不同类型的高速缓存,诸如结果高速缓存、索引高速缓存和布尔高速缓存(布隆过滤器)。结果高速缓存可包括用户的多个频繁使用的查询以及与这些查询对应的搜索结果。由此,如果用户使用结果高速缓存中的查询来搜索文档,则搜索结果被预先计算且驻留在结果搜索引擎中,并可被立即提供给用户。索引高速缓存可以是倒排二维索引,该倒排二维索引包括多个关键词以及与这些关键词对应的文档的身份和位置。由此,如果用户提供包括驻留在索引高速缓存中的关键词的查询,则可将与索引高速缓存中的这一关键词对应的文档立即返回给用户。布尔高速缓存可输出对用户所提供的查询中的关键词是否与文档对应的指示。由此,例如,如果用户提供在结果高速缓存中未包括的查询并且在索引高速缓存中未包括该查询的关键词,则可访问布尔高速缓存来查明该关键词是否存在于预定范围的关键词(以字母“A”开始至以字母“D”开始的关键词)中。如果该关键词在预定范围中但没有被表示在布尔高速缓存中,则可立即输出对所提供的查询的结果集为空的指示,而无需访问协调器设备。
在阅读并理解了附图和描述后,可以明白其他方面。
附图说明
图1是被配置有搜索高速缓存的示例性计算设备。
图2是示例性系统的功能框图,该示例性系统便于创建对用户的跨多个计算设备分布的文档的全局索引。
图3是示例性系统的功能框图,该示例性系统便于建立受限于空间约束的搜索高速缓存。
图4是示例性系统的功能框图,该示例性系统便于在跨用户的多个计算设备分布的多个文档中进行搜索。
图5是示出用于利用搜索高速缓存来执行对驻留在多个不同计算设备上的文档进行搜索的示例性方法的流程图。
图6是示出用于建立跨用户的多个计算设备的文档的全局索引的示例性方法的流程图。
图7是示出用于生成并向移动计算设备传送搜索高速缓存的示例性方法的流程图。
图8是示出用于更新驻留在移动计算设备上的搜索高速缓存的示例性方法的流程图。
图9是示例性计算系统。
具体实施方式
现在将参考附图来描述关于通过使用搜索高速缓存来在多个文档中进行搜索的各种技术,在全部附图中相同的附图标记表示相同的元素。另外,本文出于解释的目的示出并描述了各示例性系统的若干功能框图;然而可以理解,被描述为由特定系统组件执行的功能可以由多个组件来执行。类似地,例如,一组件可被配置成执行被描述为由多个组件执行的功能。另外,如此处所用的,术语“示例性”旨在表示用作某些事物的图示或示例,而不意图指示优选。
参考图1,示出了配置有搜索高速缓存的示例性计算设备100,可结合搜索文档来利用该搜索高速缓存。计算设备100可以是任何合适的计算设备,包括但不限于个人计算机、膝上型计算机或某一其他合适的计算设备。在特定示例中,计算设备100可以是诸如移动电话、移动媒体播放器、移动游戏设备、电子阅读器之类的移动计算设备,或其他合适的计算设备此外,如此处使用的,术语“文档”旨在包括多个不同类型的电子文档,其中这样的电子文档可具有与其对应的关键词。由此,如此处使用的,文档可以是文字处理文档、图像、电子邮件、网页、电子表格文档、多媒体文件、或其他合适的文档。此外,文档可具有与其对应的关键词,其中关键词可以是该文档中所包括的文本的一部分、与该文档对应的元数据、分配给该文档的标签等。
计算设备100包括从用户接收查询的接收器组件102,其中该查询由用户来制定以定位可跨用户的各计算设备分布的一个或多个文档。例如,查询可包括一个或多个关键词,并且用户可通过合适的用户界面将该查询提供给计算设备100,该用户界面包括按钮、键盘、接受语音命令的话筒等。
搜索组件104与接收器组件102进行通信,并且在驻留在计算设备100的存储器中的搜索高速缓存106中执行搜索。搜索组件104至少部分基于由接收器组件102所接收的查询来在搜索高速缓存中执行搜索。显示器108与搜索组件104进行通信,使得可将搜索组件108所检索的搜索结果在计算设备100的显示器108上显示给用户。显示器108可在计算设备100外部或可与计算设备100集成。另外地或另选地,计算设备100可包括数据存储介质,并且由搜索组件1014输出的搜索结果可被保留在该数据存储介质中。
在示例性实施例中,搜索缓存106包括多个不同类型的高速缓存。例如,搜索高速缓存106可包括结果高速缓存110、索引高速缓存112和布尔高速缓存114。在示例性实施例中,布尔高速缓存114可以是布隆过滤器。布隆过滤器是一数据结构,该数据结构可用于测试元素是否驻留在集合中。
结果高速缓存110可包括多个查询以及与这些查询对应的预先计算的搜索结果。例如,该多个查询可以是由一个用户或用户集所频繁提交的查询。由此,如果用户利用查询“计算机销售”在文档集中频繁地搜索,则结果高速缓存110可包括这一查询以及与这一查询对应的搜索结果。与该查询对应的搜索结果可指示通过使用该查询所检索的文档的身份和位置。因此,如果结果高速缓存110中包括用户所提供的查询,则搜索组件104可将结果高速缓存110中的搜索结果返回给用户,而无需通过网络连接访问另一计算设备。
索引高速缓存112可以是倒排索引,该倒排索引包括多个关键词以及文档语料库中对应于这些关键词的文档。因此,在接收到该查询之后,搜索组件104可首先检查结果高速缓存110以确定结果高速缓存110中是否包括该查询。如果结果高速缓存110中未包括该查询,则搜索组件104可以搜索索引高速缓存112以寻找包括在该查询中的关键词。如果查询中的关键词在索引高速缓存112中存在,则搜索组件104可返回结果集并且使得这一结果集被显示在计算设备110的显示器108上,该结果集包括与该查询的关键词对应的文档的身份和位置。由此,如果搜索可基于索引高速缓存112的内容来执行,则不需要通过网络连接将该查询提交给另一计算设备,并且可在计算设备100处本地回答该查询。
布尔高速缓存114可被配置成指示查询中的关键词是否位于与特定文档语料库中的文档对应的元素集中。可以理解,搜索组件104没有利用布尔高速缓存114来返回搜索结果。相反,如果该查询中的关键词不与布尔高速缓存114所表示的特定文档语料库中的任何文档相对应,则搜索组件104可返回空结果集。如以下将更详细地描述的,布尔高速缓存114可与特定范围相关联,使得由于布尔高速缓存114的大小约束而只有与文档语料库对应的关键词子集被包括在布尔高速缓存114中。例如,可将对应于文档语料库以字母“A”开始的关键词至对应于该文档语料库以字母“D”开始的关键词包括在布尔高速缓存114中,而不将其他关键词包括在布尔高速缓存114中。
继续这一示例,如果该查询包括关键词“计算机”并且该查询未被包括在结果高速缓存110或索引高速缓存112中,则搜索组件104可确定这一关键词是否被包括在对应于布尔高速缓存114的范围中。在这一示例中,关键词“计算机”以字母“C”开始,并且由此被包括在布尔高速缓存114的范围中。搜索组件104随后可检查布尔高速缓存114以确定关键词“计算机”是否被包括在布尔高速缓存114所表示的关键词集中。如果在布尔高速缓存114的元素集中没有找到关键词“计算机”,则感兴趣的文档语料库中没有对应于这一关键词的文档,并且搜索组件104可经由显示器108向用户返回空结果集。如果搜索组件104确定关键词“计算机”被包括在布尔高速缓存114中,则至少一个文档与这一关键词对应,并且搜索组件104不能在计算设备100处本地完成该搜索。在这一情况下,搜索组件104可被配置成将该查询传送给可以访问较大索引的另一计算设备,使得可将搜索结果返回给用户。
尽管以上将搜索高速缓存106描述为包括结果高速缓存110、索引高速缓存112和布尔高速缓存114,但在某些情形中,这些高速缓存110、112或114中的一个或多个可被排除在搜索高速缓存106以外。例如,搜索高速缓存106可在空间方面受约束,并且可通过将索引高速缓存112和布尔高速缓存114包括在搜索高速缓存106中但从搜索高速缓存106中省略结果高速缓存110来优化或基本上优化在计算设备100上本地完成搜索的能力。搜索高速缓存106的特定内容可取决于与计算设备100对应的存储器约束以及搜索组件104期望搜索的文档语料库的大小(例如文档集中的文档数量)。
现在将描述特定实施例,其中计算设备100是移动计算设备,且期望搜索的文档语料库是跨用户的多个计算设备分布的。例如,用户可具有个人计算机、与工作有关的计算机、膝上型计算机和多个其他计算设备,并且文档可跨这些计算设备分布。如以下将更详细地描述的,协调器设备可创建全局索引,该全局索引使用这些文档的身份和位置来对文档的关键词进行索引。计算设备100可向协调器设备指示在计算设备100上对搜索高速缓存106可用的存储器中的空间量。协调器设备随后可根据这样的存储器约束来生成搜索高速缓存106,并将搜索高速缓存106传送给计算设备100,其中搜索高速缓存106可被保留在计算设备100的存储器中。用户随后可使用计算设备100来在跨多个计算设备分布的文档中执行搜索,而无需将查询传送给协调器设备或传送给用户的其他计算设备。搜索的局部性可减少计算设备100的电池使用,并且可在计算设备100不通过网络连接到协调器设备或用户的其他计算设备的情况下执行搜索的局部性。此外,由于可使用搜索高速缓存106来相对快速地计算搜索,因此与常规系统相比,交互式搜索较不被禁止。
例如,计算设备100可以是移动电话,该移动电话位于覆盖范围以外,但用户可仍然希望确定可能或可能不驻留在计算设备100上的一个或多个文档的位置。用户可向计算设备100提供查询,并且这一查询可由接收器组件102来接收。搜索组件104最初搜索结果高速缓存110以寻找该查询,并且如果该查询被包括在结果高速缓存110中则可经由显示器108向用户提供搜索结果。如果结果高速缓存110中未包括该查询,则搜索组件104可以搜索索引高速缓存112以寻找包括在该查询中的关键词。如果索引高速缓存112中包括该查询中的关键词,则搜索组件104可基于索引高速缓存112的内容经由显示器108向用户输出搜索结果。如果索引高速缓存112中未包括该查询中的关键词,则搜索组件104可访问布尔高速缓存114。如果布尔高速缓存114的范围中未包括该查询的关键词,则搜索组件104可发起网络连接且该查询可被传送给协调器设备,使得可在用户的文档的全局索引中执行搜索。如果一个或多个关键词在布尔高速缓存114的范围中,则搜索组件104可查明布尔高速缓存114是否包括该关键词。如果布尔高速缓存114指示布尔高速缓存114中不包括该查询的关键词,则搜索组件104可经由显示器108向用户指示不存在与用户所提交的查询相对应的文档。如果布尔高速缓存114指示布尔高速缓存114中包括该查询的至少一个关键词,则搜索组件104可发起网络连接且该查询可被传送给协调器设备或传送给用户的其他计算设备。
同样,这一体系结构本质上是示例性的,并且可以理解,可结合执行web搜索来利用搜索高速缓存106。例如,计算设备100可与搜索引擎进行通信。为减小搜索引擎的负载和/或为增加执行搜索的速度,搜索引擎可将搜索高速缓存106传送给计算设备100。由此,如果用户提供期望用于搜索web的内容的查询且结果高速缓存110中包括这一查询,则计算设备100上的搜索组件104可向用户返回搜索结果,而无需直接访问搜索引擎。类似地,如果索引高速缓存112和搜索高速缓存106中包括一个或多个关键词,则计算设备100需要请求搜索引擎在一个或多个服务器上执行搜索。
现在参考图2,示出了便于生成搜索高速缓存106的示例性系统200。系统200包括属于特定用户或由特定用户使用的多个计算设备202-204。如上所述,计算设备202-204可包括台式计算机,膝上型计算机,诸如多媒体播放器、移动电话之类的移动计算设备等。另外,计算设备202-204之一可以是以上描述的计算设备100。
系统200还包括协调器设备206。在一个示例中,协调器设备206可以是可通过合适的网络连接对于计算设备202-204可访问的云计算设备。在另一示例中,协调器设备206可以是用户拥有的或使用的计算设备,该用户拥有或使用计算设备202-204。由此,例如,协调器设备206可以是台式计算机、膝上型计算机等。
计算设备202-204中的每一个都可具有保留在其上的用户的文档。计算设备202-204可被配置成生成局部索引,这些局部索引对保留在相应计算设备202-204上的文档进行索引。例如,计算设备202可生成索引,该索引使用保留在计算设备202上的文档的身份和位置来对与这些文档对应的关键词进行索引,并且计算设备204可被配置成生成索引,该索引使用保留在计算设备204上的文档的身份和位置来对与这些文档对应的关键词进行索引。计算设备202-204可被配置成将这些局部索引传送给协调器设备206。
协调器设备206可包括全局索引确定者组件208,该全局索引确定者组件从计算设备202-204接收局部索引、并为跨计算设备202-204(且还可能在协调器设备206上)所保留的文档生成全局索引。即,全局索引确定者组件208可生成索引,该索引使用跨计算设备202-206分布的文档的身份和位置来对关键词进行索引。由此,驻留在协调器设备206上且被配置成执行对文档的搜索的模块可接收包括至少一个关键词的查询,并且可通过利用全局索引确定者组件208所生成的全局索引来标识与这一关键词对应的跨计算设备202-204的文档及其位置。
协调器设备206还包括高速缓存优化器组件210,该高速缓存优化器组件对要传送给计算设备202-204之中的计算设备100的搜索高速缓存106进行基本优化。例如,如以下将更详细地描述的,高速缓存优化器组件210可从计算设备100接收对搜索高速缓存106的大小约束,之后可至少部分基于计算设备100所提供的大小约束来生成搜索高速缓存106。高速缓存优化器组件210可通过分析全局索引确定者组件208所创建的全局索引、用户的搜索历史、以及对应于文档的其他数据来生成这一高速缓存。所得的搜索高速缓存106可由高速缓存优化器组件210来配置,以便在给定对搜索高速缓存106的大小约束的情况下,基本上最大化用户所期望执行的搜索可在计算设备100处被本地完成的概率。具体地,高速缓存优化器组件210可确定结果高速缓存110的大小和内容、索引高速缓存112的大小和内容、以及布尔高速缓存114的大小和内容,使得在给定搜索高速缓存106的大小约束的情况下、在计算设备110上本地完成搜索的概率被基本上最大化。
此外,协调器设备206可被配置成有时(例如,在已经对用户的文档作出改变之后且在计算设备100与协调器设备206连接之后)将对搜索高速缓存106的更新传送给计算设备100。如上所述,计算设备202-204可被配置成生成局部索引,这些局部索引使用其上的文档身份和位置来对关键词进行索引。然而,计算设备202-204的内容不保持静态。即,计算设备202-204的用户可创建新文档、删除文档、修改现有文档等等。计算设备202-204可被配置成更新其上的局部索引,并将这些更新传送给协调器设备206。更新可以是对这些索引的改变(增量),而不是整个索引。全局索引确定者组件208可至少部分基于对计算设备202-204所提供的局部索引的改变来更新全局索引。高速缓存优化器组件210可基于对全局索引的更改来执行后续优化,并且协调器设备206可将对搜索高速缓存106的更新传送给计算设备100。同样,协调器设备206不需要传送整个新的搜索高速缓存,而是可传送对计算设备100处的现有搜索高速缓存106的更新。
现在参考图3,示出了便于优化搜索高速缓存106并且便于向计算设备100提供这一搜索高速缓存106的示例性系统300。系统300包括协调器设备206。协调器设备206包括或可访问数据存储302,该数据存储包括由全局索引确定者组件208生成的全局索引304。系统300还包括计算设备100,该计算设备100通过诸如USB连接、网络连接之类的合适的通信连接与协调器设备206进行通信。计算设备100可能希望从协调器设备206接收搜索高速缓存,使得对多个不同计算设备中的文档的搜索可在计算设备100处本地进行,其中这一计算设备100可具有与其相关联的特定约束(例如,电池电量约束、存储约束等)。
计算设备100可将期望的搜索高速缓存大小传输给协调器设备206。对搜索高速缓存大小的传送可在计算设备100通过合适的通信链接与协调器设备206进行通信之后由计算设备100或协调器设备206来发起。例如,计算设备200可被配置成具有以下功能:允许计算设备100确定期望用于搜索高速缓存106的特定量的存储器(例如闪存)。
协调器设备206包括高速缓存优化器组件210,该高速缓存优化器组件210可在给定大小约束的情况下为计算设备100优化搜索高速缓存106。为执行这一优化,高速缓存优化器组件210可访问数据存储302以查看全局索引304、用户的搜索历史、以及可与针对跨计算设备的用户文档的搜索有关的任何其他数据。
高速缓存优化器组件210包括确定结果高速缓存110的大小的高速缓存大小确定者组件306,索引高速缓存112,以及期望传送给计算设备100的结果高速缓存114。根据一示例,计算设备100可指示为搜索高速缓存106分配1GB的存储器空间。高速缓存大小确定者组件306可确定结果高速缓存110的大小b、索引高速缓存112的大小a,并且由此布尔高速缓存114的大小为1GB-a-b。这些大小可例如基于对全局索引304和用户的搜索历史以及其他数据的分析探查来确定。
高速缓存优化器组件210还包括结果高速缓存确定者组件308,该结果高速缓存确定者组件308被配置成在给定高速缓存大小确定者组件306所输出的结果高速缓存110的大小的约束下,确定结果高速缓存110的内容。结果高速缓存确定者组件308可通过分析用户所提供的历史查询来确定结果高速缓存110的内容。例如,如果用户频繁地发出特定查询,则只要考虑到结果高速缓存110的大小约束,结果高速缓存确定者组件308就可使得这一查询和与其对应的搜索结果被放置在结果高速缓存中。
高速缓存优化器组件210可附加地包括索引高速缓存确定者组件310,该索引高速缓存确定者组件310在给定对索引高速缓存112的大小约束下可确定该索引高速缓存的内容。同样,索引高速缓存确定者组件310可通过分析全局索引304、对于全局索引304的命中率、与文档对应的关键词、用户的先前搜索等来确定索引高速缓存112的内容。此外,在修剪全局索引304以生成索引高速缓存112时,索引高速缓存确定者组件310可使用任何合适的技术。例如,索引高速缓存确定者组件310可利用已知技术来确保前k个搜索结果将与索引高速缓存112中所表示的关键词相对应。
高速缓存优化器组件210还可包括布尔高速缓存确定者组件312,该布尔高速缓存确定者组件312可至少部分基于对全局索引304、该用户或其他用户所提供的先前查询等的分析性分析来确定布尔高速缓存的内容。另外,布尔高速缓存确定者组件312可确定布尔高速缓存114的内容,同时考虑由高速缓存大小确定者组件306所输出的对布尔高速缓存114的大小约束。在某些情形中,高速缓存大小确定者组件306可输出约束,使得全局索引304中的所有关键词不能被包括在布尔高速缓存114中。布尔高速缓存确定者组件312可分析由用户进行的先前搜索中的关键词,并且可选择要包括在布尔高速缓存114中的特定范围的关键词,以便考虑高速缓存大小确定者组件306所输出的大小约束。例如,高速缓存大小确定者组件306可输出对布尔高速缓存的大小为250MB的限制。布尔高速缓存确定者组件312可查明布尔高速缓存114中仅可包括特定范围的关键词以便考虑这一大小约束。因此,例如,布尔高速缓存确定者组件312可选择将某一范围的关键词包括在布尔高速缓存114中(例如,以字母“D”开始的关键词至以字母“M”开始的关键词)。如上所述,这一范围可被选择以便基本最大化移动设备的用户所请求的搜索可在计算设备100处被本地完成的概率。可以理解,以上所描述的是用于确定搜索高速缓存的大小和内容的部分的示例性机制,并且发明人构想了用于基于用户历史和/或文档内容来确定这些大小和内容的任何合适的方式,并且这些方式旨在落入本文所附的权利要求书的范围之内。
尽管已将高速缓存优化器组件110描述为生成搜索高速缓存106来基本上最大化在计算设备100处进行的对文档的搜索可被本地完成的概率,但是可由高速缓存优化器组件进行的另一优化是基本上最小化关于执行搜索的成本。以下提供的是在确定搜索高速缓存106中高速缓存的大小时可由高速缓存优化器组件210进行基本最小化的成本函数的示例性公式。在以下提供的示例公式中,搜索高速缓存106仅包括索引高速缓存112和布尔高速缓存114。在这一公式中,l表示在索引高速缓存310中对查询的命中率。l的等式可被写成如下:
l ( a , τ , s , α ) = s × ( 1 - e min ( 1 , a × τ α ) 1 - e - 1 ) - - - ( 1 )
其中,a是被分配给索引高速缓存112的搜索高速缓存106的一部分,τ是分数s是全局索引304中的命中率且指示文档语料库中存在多少所搜索的项,以及α是分数索引高速缓存112的命中率与搜索高速缓存106的大小之间的依赖关系是上界由全局索引304中的命中率(s)界定的反指数。
此外,在这一公式中r可表示文档语料库中不能在索引高速缓存114中被容纳但在布尔高速缓存114中被表示的所有关键词的一部分,在适当条件下这可如下表达:
其中A是搜索高速缓存106的大小,B是全局索引304的大小,y是布尔高速缓存114中单词的平均大小,X是全局索引304中的单词的平均大小,以及x是搜索高速缓存106中的单词的平均大小。这一等式可按一般形式被重写成如下:
r ( a , p , τ , x , α ) = min ( 1 , max ( 0 , τ × ( 1 - a ) × x y ( p ) 1 - a × τ α ) ) - - - ( 3 )
在等式(3)中,
以及(4)
y ( p ) = log 2 ( 1 p ) × log 2 e - - - ( 5 )
是布尔高速缓存中单词的平均大小,其中p是与布尔高速缓存114(布隆过滤器)相关联的假肯定率。
此外,h可指示布尔高速缓存114中的命中率。由于可假设全局索引304中的命中率遵循均匀分布,因此h具有两个分量。布尔高速缓存114中的命中由正确匹配引起,而布尔高速缓存114中的命中由假肯定引起。因此,h(p,s)=s+(1-s)×p。
搜索高速缓存106中的遗漏的成本可由两个不同分量组成:1)在索引高速缓存112中且在布尔高速缓存114所表示的范围中不存在的遗漏;以及2)在索引高速缓存112中且在布尔高速缓存114所表示的范围中存在的遗漏以及在布尔高速缓存114中的命中。因此,成本c的等式可被公式化为如下:
c(a,p,τ,x,α,s)=(1-l(a,τ,s,α))×{r(a,p,τ,x,α)×h(p,s)+1-ra,p,τ,x,α                                                      (6)
在确定高速缓存的大小时,高速缓存大小确定者组件306可基本上最小化以上描述的成本函数。这可通过对全局索引304中的搜索历史进行分析性分析来确定。
现在转向图4,示出了便于搜索位于跨用户的多个计算设备的文档的示例性系统400。系统400包括与协调器设备206进行通信的计算设备100。如上所述,协调器设备206包括或可访问保留全局索引304的数据存储302。例如,全局索引304可包括与跨用户的计算设备的文档相对应的关键词、对应于这些关键词的文档的身份、以及这些文档的位置。
在图4中描绘的示例中,用户向计算设备100提供查询。搜索组件104至少部分基于查询的内容来对计算设备100中的搜索高速缓存106进行搜索。一般地,期望计算设备100能够通过利用搜索高速缓存106来本地执行搜索。然而,在某些情况下,可能无法通过利用搜索高速缓存106来回答用户所请求的搜索。例如,如果结果高速缓存110中不包括该查询、索引高速缓存112中不包括该查询的关键词、和/或布尔高速缓存114不能输出空结果集,则不能本地完成该搜索。在这一情况下,搜索组件104可被配置成发起与协调器设备206的网络连接,并且将用户所提供的查询传送给协调器设备206。协调器设备206可包括基于查询来搜索全局索引304的全局索引搜索组件402。全局索引搜索组件402可基于对全局索引304的搜索来确定结果集,其中该结果集可包括用户的计算设备上文档的身份和位置,且可导致搜索结果从协调器设备206被传送到计算设备100。用户随后可在计算设备100的显示器108上查看搜索结果。
现在参考图5-8,示出并描述了各种示例性方法。尽管各方法被描述为顺序地执行的一系列动作,但可以理解,这些方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,动作可以与另一动作同时发生。此外,在一些情况下,实现本文描述的方法并不需要所有动作。
此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。计算机可读介质可以是非瞬时介质、诸如存储器、硬盘驱动器、CD、DVD、闪存驱动器等。
现在参考图5,示出了便于在搜索高速缓存106中执行搜索的示例性方法500。方法500在502处开始,并且在504处,在用户的计算设备100处接收查询。例如,该查询可被公式化为定位在用户的多个不同计算设备上驻留的文档。
在506处,响应于接收到该查询,访问搜索高速缓存106中的结果高速缓存110。例如,可将用户所提供的该查询与结果高速缓存110中的查询作比较。在508处,作出关于结果高速缓存110中是否已经有命中的确定(在结果高速缓存110中是否存在该查询)。如果已经有命中,则方法500前进至510,并且向用户输出搜索结果。可从结果高速缓存中检索这些搜索结果。
在508处,如果确定没有存在过命中,则在512处可访问索引高速缓存112。具体地,可分析索引高速缓存以确定在504处所接收的查询中的一个或多个关键词是否在索引高速缓存112中被表示。在514处,作出关于在使用该查询中的一个或多个关键词的索引高速缓存中是否已经有命中的确定。如果已经有命中,则在510处向用户输出与索引高速缓存中的关键词对应的搜索结果。如果在514处没有过命中,则在516处访问布隆过滤器。
如上所述,可将布隆过滤器限制于特定范围,诸如关键词的字母表范围。在518处,作出关于该一个或多个关键词是否在布隆过滤器的范围中的确定。如果确定这些关键词不在布隆过滤器的范围中,则在520处将该查询传送给协调器设备206,其中可利用这一查询来在全局索引304中搜索。如果该查询中的关键词在对应于布隆过滤器的范围中,则在522处作出关于该关键词是否在布隆过滤器中被表示的确定。如果确定该关键词在布隆过滤器中被表示,则方法500前进至520,在那里将查询传送给协调器设备以供在其上进行的搜索。如果关键词没有在布隆过滤器中被表示,则在524可向用户输出空结果集。方法500在526完成。
现在参考图6,示出了便于生成跨用户的计算设备的文档的全局索引的示例性方法600。方法600在602处开始,并且在604处从用户接收一个或多个计算设备的身份。例如,用户可使得每一计算设备与协调器设备进行通信,例如通过提供唯一标识的数据,用户可指示期望这些计算设备被包括在搜索/索引服务中。例如,用户可通过利用浏览器来访问特定网页,并且提供指示用户身份的数据。这可针对用户希望将其包括在搜索/索引服务中的每一计算设备来进行。
在606处,接收来自604处所标识的计算设备中的每一个的文档的局部索引。例如,计算设备可被配置成生成局部索引,这些局部索引使用保留在计算设备上的文档来对关键词进行索引。
在608处,生成跨用户的计算设备的文档的全局索引。因此,搜索这一全局索引可为跨多个计算设备的文档提供搜索结果。方法600在610完成。
现在参考图7,示出了便于计算搜索高速缓存并将其传送给计算设备的示例性方法700。方法700在702处开始,并且在704处,接收来自计算设备对搜索高速缓存的请求。在706处,确定搜索高速缓存的期望大小。例如,计算设备可输出描述搜索高速缓存的期望大小的数据。
在708处,确定要包括在搜索高速缓存中的结果高速缓存、索引高速缓存和布隆过滤器的期望大小。这些大小可通过对全局索引、用户所提供的先前搜索、对应于文档的关键词、文档语料库中的文档数量以及其他数据的分析性分析来查明。
在710处,结果高速缓存、索引高速缓存和布隆过滤器被生成以便在给定对搜索高速缓存的大小约束下使用搜索高速缓存来基本上最小化搜索的成本。在712处,将搜索高速缓存传送给计算设备,并且在714处方法700完成。
现在转向图8,示出了用于在移动计算设备上更新搜索高速缓存的示例性方法800。方法800在802处开始,并且在804处,从用户的至少一个计算设备接收对局部索引的更改。具体地,至少一个计算设备可被配置成首先生成局部索引并且将这一局部索引传送给协调器设备。然而,之后,计算设备可被配置成将对局部索引的改变传送给协调器设备,而不是传送整个局部索引。因此,协调器设备可从用户的多个计算机接收对局部索引的这些更改。
在806处,跨用户的多个计算设备的文档的全局索引是至少部分基于从用户的至少一个计算设备所接收的对局部索引的更改来更新的。具体地,用户可对计算设备上的文档进行添加、删除、修改、移动等,并且计算设备上的局部索引可被更新以指示文档的这一变换。随后可将这一改变传送给协调器设备,协调器设备可至少部分基于由计算设备所传送的对局部索引的改变来更新全局索引。如上所述,全局索引可考虑跨用户的多个计算设备的文档和/或由用户访问的文档,这些计算设备包括移动计算设备、台式计算设备、服务器、云存储设备等。此外,移动计算设备旨在包含移动电话、膝上型计算机、个人数字助理、多媒体播放器、移动游戏控制台以及之类的设备。
在808处,至少部分基于对文档的全局索引的更新来对移动计算设备上的搜索高速缓存进行更新。例如,协调器设备可传送对计算设备上现有搜索高速缓存的更改,而不是重传整个新的搜索高速缓存。因此,可向计算设备传送相对少量的数据来更新搜索高速缓存。该方法在810完成。
现在参考图9,示出了可以根据本文公开的系统和方法使用的示例性计算设备900的高级图示。例如,可在支持对用户的多个不同计算设备中的文档进行搜索的系统中使用计算设备900。在另一示例中,计算设备900的至少一部分可以用在支持生成搜索高速缓存的系统中。计算设备900包括执行存储在存储器904中的指令的至少一个处理器902。存储器904可以是或可以包括RAM、ROM、EEPROM、闪存、或其它适合的存储器。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器902可以通过系统总线906访问存储器904。除了存储可执行指令之外,存储器904还可存储结果高速缓存、索引高速缓存、布隆过滤器等。
计算设备900附加地包括可由处理器902通过系统总线906访问的数据存储908。数据存储908可以是或可以包括任何合适的计算机可读存储,包括硬盘、存储器等。数据存储908可包括可执行指令、搜索高速缓存、全局索引、历史用户搜索、文档、关键词等。计算设备900还包括允许外部设备与计算设备900进行通信的输入接口910。例如,可以使用输入接口910来从外部计算机设备、用户等接收指令。计算设备900还包括将计算设备900与一个或多个外部设备进行接口的输出接口912。例如,计算设备900可以通过输出接口912显示文本、图像等。
另外,尽管被示为单个系统,但可以理解,计算设备900可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备900执行的任务。
如此处所使用的,术语“组件”和“系统”旨在涵盖硬件、软件、或硬件和软件的组合。因此,例如,系统或组件可以是进程、在处理器上执行的进程、或处理器。另外,组件或系统可以位于单个设备上或分布在若干设备之间。此外,组件或系统可指存储器的一部分和/或一系列晶体管。
注意,出于解释目的提供了若干示例。这些示例不应被解释为限制所附权利要求书。另外,可以认识到,本文提供的示例可被改变而仍然落入权利要求的范围内。

Claims (9)

1.一种用于搜索文档的方法,包括:
在用户的计算设备处接收来自协调器设备的搜索高速缓存,所述搜索高速缓存包括所述用户的跨多个计算设备分布的文档的全局索引;
在所述计算设备处接收来自所述用户的查询;以及
至少部分基于所接收的查询来执行对一个或多个文档的搜索,其中执行所述搜索包括使得处理器通过利用保留在所述计算设备上的所述搜索高速缓存来执行所述搜索,其中所述搜索高速缓存包括结果高速缓存、索引高速缓存和布尔高速缓存,其中所述结果高速缓存包括先前提交的查询以及对所述先前提交的查询的搜索结果,并且所述索引高速缓存使用跨所述用户的多个不同计算设备分布的文档的身份和位置来对关键词进行索引。
2.如权利要求1所述的方法,其特征在于,其中所述布尔高速缓存是布隆过滤器,所述计算设备是移动计算设备。
3.如权利要求1所述的方法,其特征在于,所述搜索是对跨所述用户的多个不同计算设备分布的文档来执行的。
4.如权利要求1所述的方法,其特征在于,所述查询包括至少一个关键词,所述布尔高速缓存是数据结构,所述数据结构指示所述至少一个关键词是否被包括在与跨所述用户的多个不同计算设备分布的文档相对应的元素集中。
5.如权利要求4所述的方法,其特征在于,所述查询包括至少一个关键词,以及执行所述搜索包括:
将所述查询与所述结果高速缓存中的各查询作比较;
如果所述查询驻留在所述结果高速缓存中,则输出与所述结果高速缓存中的所述查询相对应的至少一个文档的身份和位置;
如果所述查询不驻留在所述结果高速缓存中,则将所述索引高速缓存中的关键词与所述查询中的至少一个关键词作比较;
如果所述至少一个关键词驻留在所述索引高速缓存中,则输出与所述索引高速缓存中的关键词相对应的至少一个文档的身份和位置;
如果所述至少一个关键词不驻留在所述索引高速缓存中,则确定所述关键词是否在对应于所述布尔高速缓存的范围中;
如果所述至少一个关键词不在对应于所述布尔高速缓存的范围中,则将所述查询传送给协调器设备;
如果所述至少一个关键词在对应于所述布尔高速缓存的范围中,则搜索所述布尔高速缓存以寻找所述至少一个关键词;
如果所述至少一个关键词被包括在所述布尔高速缓存中,则将所述查询传送给协调器设备;以及
如果所述至少一个关键词没有被包括在所述布尔高速缓存中,则向所述用户返回空结果集。
6.一种用于搜索文档的系统,包括:
用于在用户的计算设备处接收来自协调器设备的搜索高速缓存的装置,所述搜索高速缓存包括所述用户的跨多个计算设备分布的文档的全局索引;
用于在所述计算设备处接收来自所述用户的查询的装置;以及
用于至少部分基于所接收的查询来执行对一个或多个文档的搜索的装置,其中执行所述搜索包括使得处理器通过利用保留在所述计算设备上的所述搜索高速缓存来执行所述搜索,其中所述搜索高速缓存包括结果高速缓存、索引高速缓存和布尔高速缓存,其中所述结果高速缓存包括先前提交的查询以及对所述先前提交的查询的搜索结果,并且所述索引高速缓存使用跨所述用户的多个不同计算设备分布的文档的身份和位置来对关键词进行索引。
7.如权利要求6所述的系统,其特征在于,所述布尔高速缓存是布隆过滤器。
8.如权利要求6所述的系统,其特征在于,所述搜索高速缓存包括数据,所述数据指示文档是通过万维网可获得的。
9.如权利要求6所述的系统,其特征在于,所述搜索高速缓存包括数据,所述数据指示跨所述用户的多个计算设备分布的用户的文档的身份和位置。
CN201110345038.9A 2010-10-29 2011-10-28 用于文档搜索的搜索高速缓存 Expired - Fee Related CN102419768B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/915,045 2010-10-29
US12/915,045 US8612423B2 (en) 2010-10-29 2010-10-29 Search cache for document search

Publications (2)

Publication Number Publication Date
CN102419768A CN102419768A (zh) 2012-04-18
CN102419768B true CN102419768B (zh) 2015-07-22

Family

ID=45944181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110345038.9A Expired - Fee Related CN102419768B (zh) 2010-10-29 2011-10-28 用于文档搜索的搜索高速缓存

Country Status (2)

Country Link
US (1) US8612423B2 (zh)
CN (1) CN102419768B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9854055B2 (en) * 2011-02-28 2017-12-26 Nokia Technologies Oy Method and apparatus for providing proxy-based content discovery and delivery
KR101862700B1 (ko) * 2011-10-11 2018-05-31 삼성전자주식회사 휴대용 단말기의 메타데이터 데이터베이스 복사를 이용한 멀티미디어 공유장치 및 방법
US11003687B2 (en) 2012-05-15 2021-05-11 Splunk, Inc. Executing data searches using generation identifiers
US10387448B2 (en) * 2012-05-15 2019-08-20 Splunk Inc. Replication of summary data in a clustered computing environment
US9130971B2 (en) 2012-05-15 2015-09-08 Splunk, Inc. Site-based search affinity
CN103853742B (zh) * 2012-11-29 2017-11-24 北大方正集团有限公司 检索装置、终端和检索方法
US9323829B2 (en) * 2013-03-13 2016-04-26 The Institute Of Electrical And Electronics Engineers, Incorporated Identification of concepts and associated processing
US20140280050A1 (en) * 2013-03-14 2014-09-18 Fujitsu Limited Term searching based on context
US10296462B2 (en) * 2013-03-15 2019-05-21 Oracle International Corporation Method to accelerate queries using dynamically generated alternate data formats in flash cache
US20140310461A1 (en) * 2013-04-12 2014-10-16 Speedtrack, Inc. Optimized and parallel processing methods with application to query evaluation
US9218350B2 (en) * 2013-04-30 2015-12-22 Microsoft Technology Licensing, Llc Searching and placeholders
US9552363B2 (en) 2013-04-30 2017-01-24 Microsoft Technology Licensing, Llc File management with placeholders
US9405767B2 (en) 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
CN104166649B (zh) * 2013-05-16 2020-03-20 阿里巴巴集团控股有限公司 一种用于搜索引擎的缓存方法和设备
KR101496179B1 (ko) * 2013-05-24 2015-02-26 삼성에스디에스 주식회사 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법
US20150242496A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Local content filtering
KR101575229B1 (ko) * 2014-04-07 2015-12-07 주식회사 코난테크놀로지 다중 데이터 검색을 위한 사용자 단말 및 그 검색방법
US10467215B2 (en) * 2015-06-23 2019-11-05 Microsoft Technology Licensing, Llc Matching documents using a bit vector search index
US11281639B2 (en) 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US20170116291A1 (en) * 2015-10-27 2017-04-27 Adobe Systems Incorporated Network caching of search result history and interactions
US10713305B1 (en) * 2016-09-29 2020-07-14 EMC IP Holding Company LLC Method and system for document search in structured document repositories
CN106874402A (zh) * 2017-01-16 2017-06-20 腾讯科技(深圳)有限公司 搜索方法和装置
CN110580241B (zh) * 2018-05-22 2023-09-01 微软技术许可有限责任公司 对索引文件进行预热
US11216516B2 (en) 2018-06-08 2022-01-04 At&T Intellectual Property I, L.P. Method and system for scalable search using microservice and cloud based search with records indexes
US11470176B2 (en) * 2019-01-29 2022-10-11 Cisco Technology, Inc. Efficient and flexible load-balancing for clusters of caches under latency constraint
CN112860978B (zh) * 2021-03-31 2024-05-17 中国工商银行股份有限公司 全局搜索方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559984A (en) * 1993-09-28 1996-09-24 Hitachi, Ltd. Distributed file system permitting each user to enhance cache hit ratio in file access mode

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956705A (en) * 1996-10-30 1999-09-21 Oracle Corporation Reverse-byte indexing
US6901437B1 (en) 2000-10-06 2005-05-31 Verizon Laboratories Inc. Mobile cache for dynamically composing user-specific information
US20020174189A1 (en) 2001-04-23 2002-11-21 Luosheng Peng Apparatus and methods for intelligently caching applications and data on a mobile device
US7849063B2 (en) * 2003-10-17 2010-12-07 Yahoo! Inc. Systems and methods for indexing content for fast and scalable retrieval
US8166005B2 (en) * 2004-09-21 2012-04-24 Emc Corporation Pathname caching and protection of the root directory in a nested multilayer directory structure
US7587387B2 (en) * 2005-03-31 2009-09-08 Google Inc. User interface for facts query engine with snippets from information sources that include query terms and answer terms
US7548908B2 (en) 2005-06-24 2009-06-16 Yahoo! Inc. Dynamic bloom filter for caching query results
US7565489B2 (en) 2005-07-01 2009-07-21 Microsoft Corporation Identifying relevant data to cache
US7886083B2 (en) * 2005-08-31 2011-02-08 Microsoft Corporation Offloaded neighbor cache entry synchronization
US20070061303A1 (en) 2005-09-14 2007-03-15 Jorey Ramer Mobile search result clustering
US7499586B2 (en) 2005-10-04 2009-03-03 Microsoft Corporation Photographing big things
US7769805B1 (en) 2006-03-31 2010-08-03 Spring Communications Company L.P. Mobile device catalog and caching and architecture
US8626136B2 (en) 2006-06-29 2014-01-07 Microsoft Corporation Architecture for user- and context-specific prefetching and caching of information on portable devices
CN101535992A (zh) 2006-09-17 2009-09-16 诺基亚公司 用于便携设备的自适应高速缓存架构和数据传送
US20080155229A1 (en) * 2006-12-21 2008-06-26 Kevin Scott Beyer System and method for generating a cache-aware bloom filter
US8516221B2 (en) * 2008-10-31 2013-08-20 Hewlett-Packard Development Company, L.P. On-the fly TLB coalescing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559984A (en) * 1993-09-28 1996-09-24 Hitachi, Ltd. Distributed file system permitting each user to enhance cache hit ratio in file access mode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Three-Level Caching for Efficient Query Processing in Large Web Search Engines;Xiaohui Long et al.;《WWW 2005》;20050514;Abstract-6. Experimental evaluation *

Also Published As

Publication number Publication date
US8612423B2 (en) 2013-12-17
US20120110015A1 (en) 2012-05-03
CN102419768A (zh) 2012-04-18

Similar Documents

Publication Publication Date Title
CN102419768B (zh) 用于文档搜索的搜索高速缓存
JP6266080B2 (ja) 類似性スコアに基づきコンテンツアイテムと画像とのマッチングを評価する方法、およびシステム
US20160275203A1 (en) Instant search results with page previews
CN103221951B (zh) 预测查询建议高速缓存
RU2666460C2 (ru) Поддержка тегированных результатов поиска
CN105493075A (zh) 基于所标识的实体的属性值检索
CN102301358A (zh) 使用社交联系的文本消歧
US20120011112A1 (en) Ranking specialization for a search
US10621189B2 (en) In-application history search
CN102930054A (zh) 数据搜索方法及系统
WO2008027367A2 (en) Search document generation and use to provide recommendations
CN102760144A (zh) 信息搜索方法及系统
CN110737756B (zh) 确定针对用户输入数据的应答的方法、装置、设备和介质
JP6165955B1 (ja) 検索クエリに応答してホワイトリストとブラックリストを使用し画像とコンテンツをマッチングする方法及びシステム
US8799257B1 (en) Searching based on audio and/or visual features of documents
CN103309869A (zh) 数据对象的展示关键词推荐方法及系统
CN107710201A (zh) 存储数据和从位向量搜索索引取回数据
CN107851108A (zh) 使用位向量搜索索引的匹配文档
JP2020173845A (ja) アプリケーション情報をトリガすること
US9785712B1 (en) Multi-index search engines
CN102339433A (zh) 一种应用于网上交易平台的数据处理方法、装置和服务器
CN101571874A (zh) 一种手机信息搜索排序系统
CN102937975A (zh) 一种网页搜索设备和方法
US9135328B2 (en) Ranking documents through contextual shortcuts
US8756120B2 (en) Hybrid context-sensitive matching algorithm for retrieving product catalogue information

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150717

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150717

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150722

Termination date: 20191028

CF01 Termination of patent right due to non-payment of annual fee