CN101390080A - 基于查询部分来供应高速缓存的查询结果 - Google Patents

基于查询部分来供应高速缓存的查询结果 Download PDF

Info

Publication number
CN101390080A
CN101390080A CNA2007800068182A CN200780006818A CN101390080A CN 101390080 A CN101390080 A CN 101390080A CN A2007800068182 A CNA2007800068182 A CN A2007800068182A CN 200780006818 A CN200780006818 A CN 200780006818A CN 101390080 A CN101390080 A CN 101390080A
Authority
CN
China
Prior art keywords
inquiry
server
group
cache
end server
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.)
Granted
Application number
CNA2007800068182A
Other languages
English (en)
Other versions
CN101390080B (zh
Inventor
G·萨瑞恩
M·A·伊萨德
Y·于
G·库马
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 Corp
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 CN101390080A publication Critical patent/CN101390080A/zh
Application granted granted Critical
Publication of CN101390080B publication Critical patent/CN101390080B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Abstract

各实施例构想了一种用于获得关于查询的一部分的相关结果并为服务器的高速缓存生成一组经更新的查询的系统和方法。可以从包括服务器高速缓存和一组通用查询的数据结构中标识并获得以查询的一部分开头的其他查询。一旦其他查询被标识,从服务器高速缓存或后端数据库获得关于其他查询的结果。可以包括被删除的和额外的查询的一组通用查询可用于为服务器生成一组经更新的查询。将可能基于分配函数而属于服务器的遗漏查询和被删除的查询插入到一队列中,该队列随后被传送给服务器的高速缓存。该传送可以发生在低活动率或空闲状态期间。

Description

基于查询部分来供应高速缓存的查询结果
背景
web搜索引擎将用户的搜索或者查询定向到分配服务器,该服务器又将该查询转发给前端服务器。前端服务器可以包含查询和相应的结果,或可以咨询后端数据库以获得查询结果。web搜索引擎通常从用户输入相同搜索项而接收重复的查询。新近查询及其结果可以在前端服务器的前端高速缓存中保存一段预定的时间,因为咨询前端高速缓存以获得所需结果比咨询后端数据库更有效且耗时更少,其中该后端数据库包含全部web索引且一般比前端高速缓存大。全部web索引可以包括诸如网页等所有可获得的web结果;因此,由于索引比存储在前端高速缓存上的结果要大得多,会导致耗时的搜索。然而,如果在前端高速缓存中没有找到所需结果,就向后端数据库咨询。
除了存储新近查询和结果之外,前端高速缓存还可以用作有用搜索的记录,它可以包括用户更频繁地咨询的结果或系统管理员相信将被咨询的结果。
用户通常必须输入完整的搜索项或查询以便呈现相关结果。如果输入诸如前几个字符等查询的一部分,通常会将错误的消息或不正确的结果呈现给用户。另外,例如,如果用户不确定为了接收结果而输入的查询,则用户必须单独输入若干查询并筛选结果以找到所需网页。如果用户输入查询的一部分并接收以所输入的部分开头的一组查询的相关结果将是理想的。另外,当用户继续输入查询时由此扩展该部分时,该结果随着查询改变而自动调整将是理想的。
另外,如果通过进一步利用前端高速缓存来保存资源且更快速地完成操作,那么这种部分查询机制则更理想。
概述
通过标识以查询的一部分开头的其他查询并获得其他查询的结果来获得查询的一部分的相关结果。该查询的一部分可被分配给接收以该查询的相同部分开头的其他查询的前端服务器。其他查询可存储在包括服务器高速缓存和一组通用查询的数据结构中。其他查询的结果可存储在服务器高速缓存或后端数据库中。
通过编译从服务器高速缓存删除的已删除查询来形成一组通用查询。该组通用查询还可以包括来自预定列表的额外查询。
可以使用该组通用查询来计算对服务器高速缓存的一组经更新的查询。遗漏查询可以是属于服务器高速缓存但也许不存储在服务器高速缓存中的查询。遗漏查询可以是该组通用查询的一部分。遗漏查询可以在空闲或低活动率期间插入到队列中并随后被置于服务器高速缓存中。同样地,从服务器高速缓存删除的过期查询也可被插入队列中并随后被置于服务器高速缓存中。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
结合各附图阅读以下详细描述将更好地理解前述摘要和以下详细描述。示例性实施例在各图中示出,然而应当理解,各实施例不局限于此处描述的具体方法和手段中。在各图中:
图1是表示一示例性计算设备的框图;
图2是表示一示例性服务器组织的框图;
图3是表示一查询系统的框图;
图4是表示一查询构造系统的框图;
图5a和图5b是示出提供查询结果的方法的一实施例的流程图;
图6是示出构造一组通用查询的方法的一实施例的流程图;以及
图7是示出更新一组高速缓存查询的方法的一实施例的流程图。
详细描述
参见图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件包括但不限于:处理单元120、系统存储器130和将包括系统存储器在内的各个系统组件耦合到处理单元120的系统总线121。系统总线121可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任何一种的局部总线。作为例子而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、以及外围部件互连(PCI)总线(也被称为夹层(Mezzanine)总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,且包括易失性和非易失性介质、以及可移动和不可移动介质。作为例子而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质可以包括以用于存储如计算机可读指令、数据结构、程序模块或其他数据这样的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字多功能盘(DVD)或者其它光盘存储、磁带盒、磁带、磁盘存储或者其它磁存储设备、或者能够用来存储所需信息并且能够由计算机110访问的任何其它介质。通信介质通常以诸如载波或者其它传输机制的已调制数据信号来体现计算机可读指令、数据结构、程序模块或者其它数据,并且包括任何信息传递介质。术语“已调制数据信号”是指以在该信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为例子而非限制,通信介质包括有线介质,诸如有线网络或者直接线连接,以及无线介质,诸如声学、射频(RF)、红外以及其它无线介质。任何上述组合都应包括在计算机可读介质的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机可读存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)一般被存储在ROM 131中,BIOS包含有助于例如在启动过程中在计算机110内部的元件之间传输信息的基本例程。RAM 132一般包含可由处理单元120立即访问和/或当前正由处理单元120进行操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其他程序模块136和程序数据137。
计算机110还可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅仅作为示例,图1示出了从不可移动、非易失性磁介质读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152读取或向其写入的磁盘驱动器151,以及从诸如CD-ROM或其它光学介质等可移动、非易失性光盘156读取或向其写入的光盘驱动器155。能在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140等不可移动存储器接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150等可移动存储器接口连接到系统总线121。
以上讨论且示于图1中的驱动器及其相关联计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块及其它数据的存储。在图1中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。应当注意,这些组件可以和操作系统134、应用程序135、其他程序模块136和程序数据137相同或者相异。操作系统144、应用程序145、其他程序模块146和程序数据147在此处被给予了不同的编号以示出至少它们是不同的副本。用户可以经由输入设备,诸如键盘162和通常称之为鼠标、跟踪球或者触摸垫的指示设备161将命令和信息输入到计算机110中。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些及其它输入设备经常经由耦合到系统总线的用户输入接口160耦合到处理单元120,但是可以通过其它接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)进行连接。监视器191或其他类型的显示设备也通过诸如视频接口190等接口耦合到系统总线121。除了监视器之外,计算机还可以包括诸如扬声器197和打印机196等其他外围输出设备,它们可以通过输出外围接口190进行连接。
计算机110可以利用与诸如远程计算机180等一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或者其它常见的网络节点,而且通常包括许多或者所有以上相对于计算机110所描述的元件,尽管在图1中仅示出了存储器存储设备181。所描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其它网络。这种网络环境常见于办公室、企业范围计算机网络、内联网和因特网。
当在LAN网络环境中使用时,计算机110经由网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或者用于经由如因特网等WAN 173建立通信的其他装置。可以是内置或者外置的调制解调器172可经由用户输入接口160或者其他适当的机制连接到系统总线121。在网络化环境中,相对于计算机110描述的程序模块或其部分可存储在远程存储器设备中。作为示例而非限制,图1将远程应用程序185示为驻留在存储器设备181上。应当明白,所示网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
以上所描述的本发明的各方法的全部或部分可以用硬件、软件或两者的组合来实施。当以软件来实施时,本发明的各方法或其某些方面或部分可用当被计算系统执行时使该计算系统执行本发明的各方法的程序代码的形式来实施。如上对该术语的定义,该程序代码可存储在任何计算机可读介质上。
图2表示可用来为诸如通过例如计算机110输入到因特网搜索引擎中的查询或查询的部分等查询提供结果的服务器组织200。查询源自因特网210上,其中用户可以插入他们想要获得的结果(诸如针对查询的网页)的查询。可在搜索引擎上输入查询,搜索引擎可以允许用户插入感兴趣的查询且可以显示相关结果供用户访问。因特网210可以连接到从因特网210接收查询的分配服务器220。多个分配服务器220可以连接到因特网210。图2示出了3个分配服务器220(220a、220b和220c),但分配服务器220的数量不受限制。查询可以通过例如查询的起源网际协议(IP)地址来分配给分配服务器220中的特定一个。可以利用其他方案将查询分配给分配服务器220之一。或者,可以随机地将查询发送给分配服务器220中的任何一个。
接收查询的分配服务器220可以将查询发送给前端服务器230,诸如图2的服务器组织220中所示的前端服务器230a、230b、230c和230n中的一个。服务器组织200不受前端服务器230的特定个数的限制。从分配服务器220接收查询的前端服务器230可基于将查询链接到前端服务器230的映射来做到这一点。例如,查询可被散列化以产生一个进而被用于映射函数的值,该函数将某个查询置于特定前端服务器230中且可以确保相同查询总是或几乎总是被定向到相同的前端服务器230。映射函数可以确定前端服务器230中的哪一个将接收查询。不需要基于映射函数来分配前端服务器230,而是可以例如且不限于随机地接收查询。
高速缓存或本地存储可以包含查询及其相应的结果。高速缓存可以是前端服务器230的一部分,且高速缓存的查询和结果可以是诸如来自一预定时间段(如3小时)的一组新近查询和结果。当前端服务器230从分配服务器220接收查询时,前端服务器230可以搜索其高速缓存以确定该查询及其相应的结果是否已存储在高速缓存中。如果查询在高速缓存中,则前端服务器230则可以返回来自高速缓存的结果。该结果可以被提供给输入查询的用户。
前端服务器230可与包含例如网页等现有结果的后端数据库240通信。查询结果可被存储在后端数据库240中。如果输入的查询不在前端服务器230的高速缓存中,则可以咨询后端数据库240以便向用户返回相关的查询结果。因为后端数据库240一般比前端服务器230的高速缓存大得多,所以咨询后端数据库比咨询前端服务器230的高速缓存要花更长的时间。因此,咨询后端数据库240仅发生在例如当前端服务器230不包含所请求的结果或当前端服务器230遇到诸如服务器故障等问题的时候。
图3是表示可用于获得对查询的一部分的结果的查询系统300的框图。查询系统300可以包括用于接收查询的一部分的分配服务器220。查询的一部分可以是例如查询的前3个字符。想得到查询结果的用户可以将查询的一部分键入或输入到因特网搜索引擎中。可基于查询的一部分所起源的计算机110的IP地址将该查询的该部分定向到分配服务器220。查询的该部分可被随机地定向到分配服务器220。
分配服务器220可以负责将查询的一部分分配给前端服务器230。为了这项分配任务,分配服务器220可以使用散列函数。例如,分配服务器220可以将查询的该部分分配给前端服务器230,从而具有相同部分的其他查询将被分配给相同的前端服务器230。在查询的该部分被分配给前端服务器230之后,分配服务器220可以将查询的该部分发送给所分配的前端服务器230。
一旦前端服务器230接收了查询的该部分,前端服务器230可以负责执行搜索以便获得具有与查询的该部分相同的部分的其他查询。为了获得这些查询,前端服务器230可以咨询数据结构310。虽然在图3中被示为单独的组件,但是数据结构310可以是前端服务器230的一部分。数据结构310可以包括诸如高速缓存查询320等服务器高速缓存。高速缓存查询320可以包括已被保存在数据结构310中一段预定时间的先前的查询。因此,例如,高速缓存查询320可以包括最新近的查询。高速缓存查询320可以被保存在数据结构310中以便简单且快速地访问新近查询。数据结构310还可以包括一组通用查询330。该组通用查询的形成将在以下更详细地描述。
数据结构可以是扩充的特里(trie)结构,它是促进与查询或查询的一部分相关的信息的快速检索的结构。例如,查询的可能部分以及与查询的每个部分相关的额外信息可以被存储在该特里结构中。与查询的每个部分相关的信息可以是例如以查询的该部分开头的预定个数的最频繁请求的查询的列表。该列表可按频率降序排序,从而首先列出以查询的该部分开头的最常请求的查询。
当从数据结构310获得可以包括查询的该部分的其他查询列表时,就咨询一结果结构340,该结构可以是高速缓存结构。该结果结构可以是前端服务器230的一部分。结果结构340包含查询的结果。在咨询结果结构340之后,获得以查询的该部分开头的查询结果并将其提供给用户。这些结果可以是例如多个网页选集。
后端服务器240还可作为查询系统300的一部分来包括。如果包括查询的该部分的查询中的一个或多个的结果不位于结果结构340中,则可以咨询后端数据库240。如图3所示,还将从后端数据库240获得的结果提供给用户。
通用查询构造系统400的框图表示在图4中示出。系统400可被分配创建通用查询330的任务,通用查询可用于获得具有与查询的该部分相同的部分的查询。通用查询构造系统400可以包括从分配服务器220接收查询的该部分的前端服务器230。服务器高速缓存410可以是前端服务器230的一部分。服务器高速缓存410可以是存储诸如已被保存了一段预定时间的查询等先前查询的前端服务器230的高速缓存结构。前端服务器230的服务器高速缓存410可以是与数据结构310的高速缓存查询320相同的组件,它可以是前端服务器230的一部分。
查询可以经常从前端服务器230的服务器高速缓存410删除。删除可由于服务器高速缓存410的大小限制而发生;可能需要删除查询以便为较新的查询(或查询的一部分)创建存储空间。或者,可以周期性地发生删除。当从服务器高速缓存410删除查询时,日志条目420可以接收并跟踪被删除的查询。一段预定时间过去之后,日志条目420可以向日志条目编译器430提供被删除的查询,后者编译被删除的条目。日志条目编译器430可以基于例如在一周内出现不止一次的条目等先前确定的准则来编译被删除的条目。一旦日志条目编译器430完成了对被删除的条目的编译,它就可以将此编译提供给数据结构310的通用查询330。数据结构310然后存储通用查询以便用于将具有与搜索的查询的该部分相同的部分的查询提供给结果结构340。
通用查询330可以用作高速缓存查询320的补充。高速缓存查询320可以是更新近的查询,而不一定是新近查询的通用查询330可以是从相对较长的预定时间(如一周)频繁地请求的查询。
图5a和5b示出了提供查询结果的方法。在505处,获得查询的一部分。查询的该部分可由想获得与查询相关的结果的用户启动,该用户将查询的该部分输入到例如因特网搜索引擎中。可在分配服务器220上获得查询的该部分。在510处,检查查询的该部分以便确定查询的该部分是否与预定条目匹配。如果查询的该部分与预定条目匹配,则在515处,将后续字符作为查询的一部分来分配。因为可能存在用户并无意使其成为查询的一部分的多个频繁出现的条目,因此该比较可以排除提供对不需要的查询的查询结果。例如,如果用户输入以“http”和“www”开头的此类查询,则用户一般不想搜索这些查询,而是对这些频繁出现的条目之后的字符感兴趣。因此,通过将诸如“www”之后的3个字符等后续字符作为查询的一部分来分配,可以搜索查询的合适部分。可将查询的该部分与其他预定条目比较。
在后续字符作为查询的一部分分配之后,如果查询的该部分与预定条目不匹配,则提供查询结果的方法分别从515和510前进到520。在520处,可以计算查询的该部分的表示。例如,该表示可以是查询的该部分的散列函数。其他表示也是可能的。
接着520,在525处,可将查询的该部分分配给前端服务器230。当在520处计算查询的该部分的表示时,然后可使用该表示以便将查询的该部分分配给前端服务器230。可使用其他分配准则来将查询的该部分分配给前端服务器。或者,分配可以是随机选择。在530处,可将查询的该部分发送给指定的前端服务器230。
535确定诸如以上根据图3和图4描述的数据结构310等数据结构是否包含以查询的该部分开头的查询。如果数据结构310(它可以包括高速缓存查询320,而后者可以包括已被保存在数据结构310中一段预定时间的先前查询和通用查询330)不包含以查询的该部分开头的查询,则在540处向用户提供空结果列表。然而,如果数据结构310包含以查询的该部分开头的查询,则该方法前进到545(图5b)。在545处,可从数据结构310获得以查询的该部分开头的查询。
在550处,对每个获得的以查询的该部分开头的查询作出判定以查明结果是否被存储在诸如结果结构340等作为前端服务器230的一部分的服务器高速缓存中。在560处,如果关于所获得的以查询的该部分开头的查询的结果不在结果结构340中,则从后端数据库240获得结果。在555处,如果关于所获得的以查询的该部分开头的查询的结果在结果结构340中,则从结果结构340中获得结果。对每个所获得的包括查询的该部分的查询执行555处的判定。这可以确保为包括查询的该部分的每个查询提供结果,而不管结果是来自后端数据库240还是来自结果结构340。提供查询的方法在提供结果的565处终止。
图6是示出构造一组通用查询的方法的流程图。在610处,基于预定列表生成查询。该预定列表可以包括系统管理员相信应为一组通用查询330的一部分的查询。例如,预定查询可以是还没有被用户在查询搜索中使用过但有望在不久的将来变得流行且被广泛搜索的一部新电影。通过将这种查询添加到作为数据结构310一部分的通用查询330中,针对查询或查询的一部分的搜索就不需向后端数据库240的咨询。
在615处,编译从诸如前端服务器230的服务器高速缓存410或高速缓存查询320等服务器的高速缓存删除的查询。可在预定时间内编译被删除的查询。如以上根据图4的通用查询构造系统400所描述的,被删除的查询可由日志条目420跟踪并由日志编译器430编译。
在620处,形成一组通用查询330。通用查询可以包括在610处生成的预定查询的组合或编译以及在615处生成的被删除的查询。在形成通用查询330之后,在625处,将通用查询330分配给前端服务器230。如果被删除的查询是从诸如图2的前端服务器230b等特定前端服务器删除的查询,则通用查询则可被分配给系统200的其他前端服务器230a、230c和230n。
图7是示出更新可以作为前端服务器230的一部分的前端服务器的数据结构310的高速缓存查询320的方法的流程图。高速缓存查询320可以包括新近查询。在710处,计算一组经更新的查询。该组经更新的查询可以包括来自通用查询330的查询,该查询将基于例如操作来将相同查询和查询的相同部分定向到相同的前端服务器230的散列和映射函数而被分配给前端服务器230。可以由前端服务器230来计算该组经更新的查询。在720处,该组经更新的查询可与高速缓存查询320一起存储在数据结构310中。这有助于更新高速缓存查询320。
在730处,确定在该组经更新的查询中但不在高速缓存查询320中的查询(遗漏查询)。如果没有查询与此准则匹配,则该方法继而搜索与此准则匹配的查询。方法继续以使遗漏查询被添加到高速缓存查询320。在740处,将遗漏查询添加到队列。
该方法可以前进到750,其中分析系统以确定该系统是否为轻负荷。每次前端服务器230向后端系统240发送请求时,来自后端系统240的响应可以包括可用于确定后端240的当前状态的反馈,该状态可以包括当前后端负荷。例如,反馈可以包括在队列中等待被后端240处理的请求的平均数量或后端240在查询处理时间限制内能够获得的答复的质量。前端服务器230然后可以使用一算法来基于反馈确定当前后端240是应被视为重负荷还是轻负荷。如果系统为轻负荷,则该方法则前进到760。
从740或750中任一个到760处,从队列中移除遗漏查询。在770处,可将遗漏查询传送给后端数据库240。在780处,后端数据库240用遗漏查询更新高速缓存查询320。遗漏查询不再从高速缓存查询320“遗漏”。
应当理解,所公开的各实施例可以被整体或部分地在一个或多个计算系统或设备中实现。图1示出了其中可实现或实施各方面的计算系统100的一个示例的功能性组件。如此处所用的,术语“计算系统”、“计算机系统”以及“计算机”是指包括能够执行或以别的方式处理程序代码和/或数据的处理器的任何机器、系统或设备。不旨在任何限制,计算系统的示例包括个人计算机(PC)、微型计算机、大型计算机、瘦客户机、网络PC、服务器、工作站、膝上型电脑、手持式计算机、可编程消费者电子产品、多媒体控制台、游戏控制台、卫星接收器、机顶盒、自动取款机、街机、移动电话、个人数字助理(PDA)以及任何其他基于处理器的系统或机器。术语“程序代码”和“代码”是指由处理器执行或以其他方式处理的任何指令集。程序代码和/或数据可用执行特定功能的例程、程序、对象、模块、数据结构等的形式来实现。
应当注意,前述示例仅是出于解释的目的提供的,且不应被理解为限制性的。虽然已参考各实施例描述了本发明,但是应当理解,此处所使用的词是描述和说明性的词,而非限制的词。此外,虽然此处已经参考具体方法、材料和示例描述了各实施例,但是各实施例不旨在限于此处所公开的细节;相反,各实施例可扩展到所有功能上等效的结构、方法和用途,这些都在所附权利要求书的范围内。

Claims (20)

1.一种提供查询结果的方法,所述方法包括:
获得一查询的一部分;
将所述查询的所述部分分配给服务器(230);
获得以所述查询的所述部分开头的其他查询;以及
基于所述查询的所述部分获得部分或所有所述其他查询的结果。
2.如权利要求1所述的方法,其特征在于,还包括:
计算所述查询的所述部分的表示;
其中将所述查询的所述部分分配给服务器(230)包括基于所述表示将所述查询的所述部分分配给服务器(230)。
3.如权利要求1所述的方法,其特征在于,还包括:
确定所述查询的所述部分是否与一预定条目匹配;以及
将后续字符分配为所述查询的所述部分。
4.如权利要求1所述的方法,其特征在于,还包括:
将高速缓存查询(320)和一组通用查询(330)存储在一数据结构(310)中;
其中获得以所述查询的所述部分开头的其他查询包括从所述数据结构(310)获得以所述查询的所述部分开头的其他查询。
5.如权利要求4所述的方法,其特征在于,还包括:
修改所述数据结构(310)以反映对所述高速缓存查询(320)所作的改变以及对所述一组通用查询(330)所作的改变。
6.如权利要求4所述的方法,其特征在于,还包括:
根据使用频率存储所述高速缓存查询(320)和所述一组通用查询(330);以及
按所述使用频率的降序显示以所述查询的所述部分开头的所述其他查询中的每一个的结果。
7.如权利要求1所述的方法,其特征在于,获得以所述查询的所述部分开头的所述其他查询中的每一个的结果包括从所述服务器(230)的高速缓存(410)获得所述其他查询中的每一个的结果。
8.如权利要求1所述的方法,其特征在于,获得以所述查询的所述部分开头的所述其他查询中的每一个的结果包括从一后端服务器(240)获得所述其他查询中的每一个的结果。
9.如权利要求1所述的方法,其特征在于,还包括:
如果不能获得以所述查询的所述部分开头的所述其他查询,则提供一空结果。
10.一种查询系统(300),包括:
接收一查询的一部分的分配服务器(220);
存储高速缓存查询(320)和一组通用查询(330)的数据结构(310);
提供关于所述高速缓存查询(320)和所述一组通用查询组(330)的结果的结果结构(340);以及
基于所述查询的所述部分咨询所述数据结构(310)和所述结果结构(340)以提供相关结果的前端服务器(230)。
11.如权利要求10所述的系统,其特征在于,还包括后端数据库(240)。
12.如权利要求10所述的系统,其特征在于,所述分配服务器(220)将所述查询的所述部分分配给所述前端服务器(230)。
13.如权利要求10所述的系统,其特征在于,所述查询的所述部分是所述查询的前缀。
14.一种构造一组通用查询(330)的方法,所述方法包括:
编译从前端服务器(230)的高速缓存(410)删除的条目;
形成由所述删除的条目组成的一组通用查询(330),其中所述删除的条目来自一预定时间范围;以及
将所述一组通用查询(330)分配给另一前端服务器(230)。
15.如权利要求14所述的方法,其特征在于,将所述一组通用查询(330)分配给另一前端服务器(230)包括将所述一组通用查询(330)分配给多个前端服务器(230)。
16.如权利要求14所述的方法,还包括:
基于一预定列表生成额外的查询;以及
将所述额外的查询添加到所述一组通用查询(330)。
17.如权利要求14所述的方法,还包括:
为前端服务器(230)计算一组经更新的查询,其中所述一组经更新的查询由被分配给所述前端服务器(230)的所述一组通用查询中的所分配的查询组成;以及
为所述前端服务器(230)构造一数据结构(310),其中所述数据结构的内容由所述一组经更新的查询和高速缓存查询(320)组成。
18.如权利要求17所述的方法,其特征在于,还包括:
计算遗漏查询,其中所述遗漏查询属于所述前端服务器(230)的高速缓存(410);以及
将所述遗漏查询插入到一队列中。
19.如权利要求18所述的方法,其特征在于,还包括:
将所述遗漏查询从所述队列移除;
将所述遗漏查询从所述队列发送到一后端数据库(240);以及
将所述遗漏查询插入到所述前端服务器(230)的所述高速缓存(410)中。
20.如权利要求17所述的方法,其特征在于,还包括:
确定从所述服务器(230)的所述高速缓存(410)过期的一过期查询是否属于所述一组经更新的查询;
将所述过期查询插入到一队列中;
将所述过期查询从所述队列中移除;
将所述过期查询从所述队列发送到一后端数据库(240);以及
将所述过期查询插入到所述前端服务器(230)的所述高速缓存(410)中。
CN2007800068182A 2006-02-28 2007-02-23 基于查询部分来供应高速缓存的查询结果 Expired - Fee Related CN101390080B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/363,895 US7797298B2 (en) 2006-02-28 2006-02-28 Serving cached query results based on a query portion
US11/363,895 2006-02-28
PCT/US2007/004799 WO2007100700A2 (en) 2006-02-28 2007-02-23 Serving cached query results based on a query portion

Publications (2)

Publication Number Publication Date
CN101390080A true CN101390080A (zh) 2009-03-18
CN101390080B CN101390080B (zh) 2011-07-06

Family

ID=38445249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800068182A Expired - Fee Related CN101390080B (zh) 2006-02-28 2007-02-23 基于查询部分来供应高速缓存的查询结果

Country Status (7)

Country Link
US (1) US7797298B2 (zh)
EP (1) EP1997019A2 (zh)
JP (1) JP2009528624A (zh)
KR (1) KR20080106194A (zh)
CN (1) CN101390080B (zh)
BR (1) BRPI0707345A2 (zh)
WO (1) WO2007100700A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880629A (zh) * 2012-06-20 2013-01-16 杜小勇 概率数据库加速查询方法
CN103020175A (zh) * 2012-11-28 2013-04-03 深圳市华为技术软件有限公司 一种获取聚合数据的方法和装置
CN107423375A (zh) * 2017-07-07 2017-12-01 北京京东尚科信息技术有限公司 应用程序搜索方法和装置
CN107566452A (zh) * 2017-08-02 2018-01-09 广州阿里巴巴文学信息技术有限公司 存储方法及装置、下载方法及装置、以及数据处理系统
CN109739885A (zh) * 2018-12-12 2019-05-10 平安科技(深圳)有限公司 基于本地缓存的数据查询方法、装置、设备及存储介质
CN110837427A (zh) * 2019-11-15 2020-02-25 四川长虹电器股份有限公司 一种基于队列分拣任务机制的防止缓存击穿的方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521725B1 (en) 2003-12-03 2013-08-27 Google Inc. Systems and methods for improved searching
US7502775B2 (en) * 2006-03-31 2009-03-10 International Business Machines Corporation Providing cost model data for tuning of query cache memory in databases
US20070294257A1 (en) * 2006-06-09 2007-12-20 Ophir Frieder Peer-to-peer file sharing
US8200842B1 (en) * 2006-10-25 2012-06-12 Cellco Partnership Automatic traffic control using dynamic DNS update
US20090070321A1 (en) * 2007-09-11 2009-03-12 Alexander Apartsin User search interface
US8346791B1 (en) 2008-05-16 2013-01-01 Google Inc. Search augmentation
US9491316B2 (en) 2008-09-09 2016-11-08 Applied Systems, Inc. Methods and apparatus for delivering documents
US9372885B2 (en) 2010-06-11 2016-06-21 Doat Media Ltd. System and methods thereof for dynamically updating the contents of a folder on a device
US9552422B2 (en) 2010-06-11 2017-01-24 Doat Media Ltd. System and method for detecting a search intent
US9069443B2 (en) 2010-06-11 2015-06-30 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a user device
US9529918B2 (en) 2010-06-11 2016-12-27 Doat Media Ltd. System and methods thereof for downloading applications via a communication network
US9639611B2 (en) 2010-06-11 2017-05-02 Doat Media Ltd. System and method for providing suitable web addresses to a user device
US10713312B2 (en) 2010-06-11 2020-07-14 Doat Media Ltd. System and method for context-launching of applications
US9141702B2 (en) 2010-06-11 2015-09-22 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a device
US10061850B1 (en) * 2010-07-27 2018-08-28 Google Llc Using recent queries for inserting relevant search results for navigational queries
US8612413B2 (en) * 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US8805766B2 (en) * 2010-10-19 2014-08-12 Hewlett-Packard Development Company, L.P. Methods and systems for modifying a knowledge base system
US8346792B1 (en) 2010-11-09 2013-01-01 Google Inc. Query generation using structural similarity between documents
EP2453368B1 (en) 2010-11-12 2017-05-31 Accenture Global Services Limited Custom web services data link layer
US9858342B2 (en) 2011-03-28 2018-01-02 Doat Media Ltd. Method and system for searching for applications respective of a connectivity mode of a user device
US8560509B2 (en) * 2011-07-08 2013-10-15 Microsoft Corporation Incremental computing for web search
US9235693B2 (en) 2012-12-06 2016-01-12 Doat Media Ltd. System and methods thereof for tracking and preventing execution of restricted applications
US9031918B2 (en) 2012-12-27 2015-05-12 Microsoft Licensing Technology, LLC Per-user aggregation of database content
CN103377292B (zh) * 2013-07-02 2017-02-15 华为技术有限公司 数据库结果集缓存方法及设备
US10033737B2 (en) 2013-10-10 2018-07-24 Harmon.Ie R&D Ltd. System and method for cross-cloud identity matching
US9851875B2 (en) 2013-12-26 2017-12-26 Doat Media Ltd. System and method thereof for generation of widgets based on applications
US9659109B2 (en) 2014-05-27 2017-05-23 Wal-Mart Stores, Inc. System and method for query auto-completion using a data structure with trie and ternary query nodes
CN105141693A (zh) * 2015-09-10 2015-12-09 上海斐讯数据通信技术有限公司 一种分布式服务器架构及其操作方法
US10387474B2 (en) 2015-10-07 2019-08-20 Harmon.Ie R&D Ltd. System and method for cross-cloud identification of topics
US9876873B1 (en) 2015-10-21 2018-01-23 Perfect Sense, Inc. Caching techniques
US10878193B2 (en) * 2018-05-01 2020-12-29 Kyocera Document Solutions Inc. Mobile device capable of providing maintenance information to solve an issue occurred in an image forming apparatus, non-transitory computer readable recording medium that records an information processing program executable by the mobile device, and information processing system including the mobile device
US11144560B2 (en) 2019-08-23 2021-10-12 International Business Machines Corporation Utilizing unsumbitted user input data for improved task performance
KR102403609B1 (ko) * 2021-12-08 2022-05-31 쿠팡 주식회사 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE514376C2 (sv) 1998-09-24 2001-02-19 Mirror Image Internet Inc Ett internet-cachningssystem samt ett förfarande och anordning i ett sådant system
US6487641B1 (en) * 1999-04-19 2002-11-26 Oracle Corporation Dynamic caches with miss tables
US6578032B1 (en) * 2000-06-28 2003-06-10 Microsoft Corporation Method and system for performing phrase/word clustering and cluster merging
CA2313802A1 (en) 2000-07-11 2002-01-11 Michael Corcoran Dynamic web page caching system and method
US7027975B1 (en) * 2000-08-08 2006-04-11 Object Services And Consulting, Inc. Guided natural language interface system and method
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
EP1211610A1 (en) 2000-11-29 2002-06-05 Lafayette Software Inc. Methods of organising data and processing queries in a database system
CA2390954C (en) * 2001-06-19 2010-05-18 Foedero Technologies, Inc. Dynamic multi-level cache manager
US7206778B2 (en) * 2001-12-17 2007-04-17 Knova Software Inc. Text search ordered along one or more dimensions
US7149748B1 (en) * 2003-05-06 2006-12-12 Sap Ag Expanded inverted index
GB0322797D0 (en) 2003-09-30 2003-10-29 Koninkl Philips Electronics Nv Query caching in a system with a content directory service
US7836044B2 (en) * 2004-06-22 2010-11-16 Google Inc. Anticipated query generation and processing in a search engine
US7487145B1 (en) * 2004-06-22 2009-02-03 Google Inc. Method and system for autocompletion using ranked results
US7788248B2 (en) * 2005-03-08 2010-08-31 Apple Inc. Immediate search feedback

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880629A (zh) * 2012-06-20 2013-01-16 杜小勇 概率数据库加速查询方法
CN102880629B (zh) * 2012-06-20 2015-06-03 杜小勇 概率数据库加速查询方法
CN103020175A (zh) * 2012-11-28 2013-04-03 深圳市华为技术软件有限公司 一种获取聚合数据的方法和装置
CN103020175B (zh) * 2012-11-28 2016-06-22 深圳市华为技术软件有限公司 一种获取聚合数据的方法和装置
CN107423375A (zh) * 2017-07-07 2017-12-01 北京京东尚科信息技术有限公司 应用程序搜索方法和装置
CN107423375B (zh) * 2017-07-07 2020-06-05 北京京东尚科信息技术有限公司 应用程序搜索方法和装置
CN107566452A (zh) * 2017-08-02 2018-01-09 广州阿里巴巴文学信息技术有限公司 存储方法及装置、下载方法及装置、以及数据处理系统
CN107566452B (zh) * 2017-08-02 2020-09-18 阿里巴巴(中国)有限公司 存储方法及装置、下载方法及装置、以及数据处理系统
CN109739885A (zh) * 2018-12-12 2019-05-10 平安科技(深圳)有限公司 基于本地缓存的数据查询方法、装置、设备及存储介质
CN110837427A (zh) * 2019-11-15 2020-02-25 四川长虹电器股份有限公司 一种基于队列分拣任务机制的防止缓存击穿的方法
CN110837427B (zh) * 2019-11-15 2022-02-01 四川长虹电器股份有限公司 一种基于队列分拣任务机制的防止缓存击穿的方法

Also Published As

Publication number Publication date
BRPI0707345A2 (pt) 2011-05-03
EP1997019A2 (en) 2008-12-03
US20070203890A1 (en) 2007-08-30
JP2009528624A (ja) 2009-08-06
CN101390080B (zh) 2011-07-06
KR20080106194A (ko) 2008-12-04
US7797298B2 (en) 2010-09-14
WO2007100700A3 (en) 2007-11-01
WO2007100700A2 (en) 2007-09-07

Similar Documents

Publication Publication Date Title
CN101390080B (zh) 基于查询部分来供应高速缓存的查询结果
EP1546924B1 (en) Method, system, and program for maintaining data in distributed caches
US9769278B2 (en) Providing local access to managed content
CN100471113C (zh) 高速缓存后的置换
CN101523393B (zh) 本地存储基于web的数据库数据
CN1528079B (zh) 用于对等服务的方法和装备
CN102576350B (zh) 高速缓存信息的系统及方法
CN101568919B (zh) 具有分布式存储的联网计算机系统中的单个数据视图
CN110046133B (zh) 一种存储文件系统的元数据管理方法、装置及系统
CN101119547A (zh) 移动终端和本地服务器之间的内容共享方法
CN101952823B (zh) 用于媒体发现的方法
CN101213544B (zh) 基于查询的同步
CN1615481A (zh) 对多媒体对象进行分发的方法和系统
JP2005018787A (ja) キャッシュエントリを無効化するために使用できるデータベーステーブル変更情報の登録および取り出し
CN101729442A (zh) 一种实现内容共享的方法和装置
CN1234086C (zh) 用于高速缓存文件信息的系统和方法
US7302681B2 (en) Method and system for customized information handling system support updates
CN1526227A (zh) 用于对等服务的方法和装备
KR20040005813A (ko) 인터넷에서 클라이언트 시스템에로의 멀티미디어 콘텐츠전송 방법
US20060112083A1 (en) Object relation information management program, method, and apparatus
US20100017795A1 (en) Server, terminal, and method for software group service
KR100433531B1 (ko) 사용자 개인 정보 데이터 관리 방법, 사용자 개인 정보 데이터 관리 컴퓨터 및 기록매체
US7853580B2 (en) Method, system and computer program for downloading information based on a snapshot approach
CN101741889A (zh) 一种网络服务集中管理的方法、系统及服务器
US20090049055A1 (en) Method, apparatus, and system to provide content using content preference 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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110706

Termination date: 20130223