CN107111619A - 用于搜索查询的灵活算子 - Google Patents
用于搜索查询的灵活算子 Download PDFInfo
- Publication number
- CN107111619A CN107111619A CN201580053622.3A CN201580053622A CN107111619A CN 107111619 A CN107111619 A CN 107111619A CN 201580053622 A CN201580053622 A CN 201580053622A CN 107111619 A CN107111619 A CN 107111619A
- Authority
- CN
- China
- Prior art keywords
- condition
- document
- search
- prep
- operator
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3338—Query expansion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
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)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在某些实施例中,接收重写搜索查询。重写搜索查询可以包括应用于词语的第一灵活算子、第一条件、指示要满足第一条件的针对第一灵活算子的搜索结果的最小量的第一满足目标、第二条件以及指示要满足第二条件的针对第一灵活算子的搜索结果的最小量的第二满足目标。可以从搜索索引中确定针对第一灵活算子的搜索结果。可以基于来自搜索索引的第一组文档满足第一条件而不要求第一组文档满足第二条件将第一组文档确定为是针对第一灵活算子的搜索结果的一部分,直至已到达针对第二条件的跳过数为止。
Description
优先权申请
本申请要求对2014年7月31日提交的美国临时申请号62/031,767和2014年12月29日提交的美国专利申请序列号14/584,813的优先权,所述申请中的每一个被整体地通过引用并入到本文中。
技术领域
本申请一般地涉及数据处理系统,并且在一个特定示例中涉及提供用于搜索查询的灵活算子的方法和系统。
背景技术
搜索查询的当前处理经受缺乏所产生的搜索结果的多样性以及过多的计算成本。
附图说明
在附图的各图中以示例而非限制的方式图示出本公开的某些实施例,在所述附图中相同的参考标号指示类似元件,并且在所述附图中:
图1是图示出根据示例实施例的客户端-服务器系统的框图;
图2是示出了根据示例实施例的联网系统内的社交网络服务的功能组件的框图;
图3是图示出根据示例实施例的搜索引擎的组件的框图;
图4是图示出根据示例实施例的使用灵活算子来确定搜索结果的图;
图5是图示出根据示例实施例的使用灵活算子来确定搜索结果的图;
图6是图示出根据示例实施例的使用嵌套式灵活算子来确定搜索结果的图;
图7是图示出根据另一示例实施例的方法的流程图;
图8是图示出根据另一示例实施例的方法的流程图;
图9是图示出根据另一示例实施例的方法的流程图;
图10是图示出根据另一示例实施例的方法的流程图;
图11是图示出根据某些示例实施例的移动设备的框图;以及
图12是根据示例实施例的可以在其上面执行本文中所述的方法的示例计算机系统的框图。
具体实施方式
公开了提供用于搜索查询的灵活算子的示例方法和系统。在以下描述中,出于解释的目的,阐述了许多特定细节以便提供示例实施例的透彻理解。然而,对于本领域的技术人员而言将显而易见的是,可在没有这些特定细节的情况下实施本实施例。
本公开介绍了在针对搜索查询确定搜索结果时使用一个或多个灵活算子。在某些实施例中,接收重写搜索查询。重写搜索查询可以包括应用于词语的第一灵活算子、第一条件、指示要满足第一条件的针对第一灵活算子的搜索结果的最小量的第一满足目标、第二条件以及指示要满足第二条件的针对第一灵活算子的搜索结果的最小量的第二满足目标。可以从包括多个文档的搜索索引来确定针对第一灵活算子的搜索结果。针对第一灵活算子的搜索结果的确定可以包括基于第一满足目标来确定针对第一条件的第一跳过数,以及基于第二满足目标来确定针对第二条件的第二跳过数。在按照静态排序的降序搜索通过搜索索引期间,可以基于来自搜索索引的第一组文档满足第一条件而不要求第一组文档满足第二条件将第一组文档确定为针对第一灵活算子的搜索结果的一部分,直到通过将第一组文档作为搜索结果的一部分的确定到达了第二跳过数。响应于到达第二跳过数,在按照静态排序的降序搜索通过索引期间,可以基于来自搜索索引的第二组文档满足第二条件而将第二组文档确定为是针对第一灵活算子的搜索结果的一部分。
在某些实施例中,可以接收包括词语的初始搜索查询,并且可以基于该词语生成重写搜索查询。在某些实施例中,重写搜索查询的生成可以进一步基于对应于社交联网服务的至少一个成员的元数据。
在某些实施例中,可以通过将第一组文档作为针对第一灵活算子的搜索结果的一部分的确定来确定已到达第二跳过数。确定已到达第二跳过数可以包括针对来自搜索索引的第一组文档中的每一个在不满足第二条件的情况下被确定为是搜索结果的一部分而递减第二跳过数,以及响应于第二跳过数被递减至零而确定已到达第二跳过数。
在某些实施例中,重写搜索查询还可以包括应用于第三条件的第二灵活算子、针对第三条件的第三满足目标以及第一灵活算子。第三满足目标可以指示要满足第三条件的针对第二灵活算子的搜索结果的最小量。在某些实施例中,可以基于第三满足目标来确定针对第三条件的第三跳过数。在按照静态排序的降序搜索通过搜索索引期间,可以基于第一预备文档满足第一条件而不要求第一预备文档满足第二条件或第三条件而从搜索索引确定针对第一灵活算子的第一预备文档。在按照静态排序的降序搜索通过搜索索引期间,可以基于第二预备文档满足第二条件而不要求第二预备文档满足第一条件或第三条件而从搜索索引确定针对第二灵活算子的第二预备文档。在按照静态排序的降序搜索通过搜索索引期间,可以基于第三预备文档满足第三条件而不要求第三预备文档满足第一条件或第二条件而从搜索索引确定针对第二灵活算子的第三预备文档。可以将第三预备文档选择成包括在针对重写搜索查询的搜索结果中。可以将第一预备文档和第二预备文档选择成从重写搜索查询中排除。可以基于将第一预备文档和第二预备文档选择成从重写搜索查询中排除来递减针对第一条件的第一跳过数和针对第二条件的第二跳过数。
在某些实施例中,重写搜索查询可以包括具有重写搜索查询的所有搜索算子的分级算子树,第一灵活算子在分级算子树的最上层,没有其它搜索算子在其之上。
在某些实施例中,第一条件可以包括所述词语存在于与被考虑用于确定为搜索结果中的一个的文档相关联的指定字段中。在某些实施例中,第二条件可以包括与被考虑用于确定为搜索结果中的一个的文档相关联的社交联网服务的第一成员和社交联网服务的第二成员之间的最小连接度。
在某些实施例中,可以使针对第一灵活算子的搜索结果呈现给提交初始搜索查询的用户。
可以将本文中公开的方法或实施例实现为具有一个或多个模块(例如,硬件模块或软件模块)的计算机系统。此类模块可以由计算机系统的一个或多个处理器执行。可以将本文中公开的方法或实施例体现为存储在机器可读介质上的指令,其在被一个或多个处理器执行时促使所述一个或多个处理器实行所述指令。
图1是图示出根据示例实施例的客户端-服务器系统的框图。联网系统102经由网络104(例如,互联网或广域网(WAN))向一个或多个客户端提供服务器侧功能性。图1图示出例如网络客户端106(例如,浏览器)和在各客户端机器110和112上执行的程序客户端108。
应用程序接口(API)服务器114和网络服务器116被耦合到一个或多个应用服务器118并分别地向其提供程序和网络接口。应用服务器118托管一个或多个应用120。应用服务器118进而被示为被耦合到一个或多个数据库服务器124,其促进对一个或多个数据库126的访问。虽然应用120在图1中被示为形成联网系统102的一部分,但将认识到的是,在替换实施例中,应用120可以形成与联网系统102分离且不同的服务的一部分。
此外,虽然图1中所示的系统100采用客户端-服务器架构,但本公开当然不限于此类架构,并且可以同样好地在例如分布式或对等架构系统中找到应用。还可以将各种应用120实现为不一定具有联网能力的独立式软件程序。
网络客户端106经由网络服务器116所支持的网络接口来访问各种应用120。同样地,程序客户端108经由通过API服务器114提供的程序接口来访问由应用120提供的各种服务和功能。
图1还将在第三方服务器机器130上执行的第三方应用128图示为可经由通过API服务器114提供的程序接口对联网系统102进行程序访问。例如,第三方应用128可以利用从联网系统102检索的信息来支持由第三方托管的网站上的一个或多个特征或功能。第三方网站可以例如提供联网系统102的相关应用所支持的一个或多个功能。
在某些实施例中,在本文中提及的任何网站可以包括可以显现在各种设备上的在线内容,所述设备包括但不限于台式个人计算机、膝上型计算机以及移动设备(例如,平板计算机、智能电话等)。在这方面,用户可以采用这些设备中的任何来使用本公开的特征。在某些实施例中,用户可以使用移动设备(机器110、112和130中的任何可以是移动设备)上的移动应用来访问和浏览在线内容,诸如本文中公开的在线内容中的任何。移动服务器(例如,API服务器114)可以与移动应用和(一个或多个)应用服务器118通信以便使得本公开的特征在移动设备上可用。
在某些实施例中,联网系统102可以包括社交网络服务的功能组件。图2是示出了根据本公开的某些实施例的供生成并提供针对搜索查询的搜索结果使用的社交联网服务的功能组件(包括在本文中称为搜索引擎216的数据处理模块)的框图。在某些实施例中,搜索引擎216可以驻存在图1中的应用服务器118上。然而,可设想的是其它配置也在本公开的范围内。
如图2中所示,前端可以包括用户接口模块(例如,网络服务器)212,其从各种客户端计算设备接收请求并向请求客户端设备传送适当响应。例如,(一个或多个)用户接口模块212可以接收以超文本传输协议(HTTP)请求或其它基于网络的应用编程接口(API)请求的形式的请求。另外,可以提供成员交互和检测模块213以检测成员与不同应用、服务和呈现的内容进行的各种交互。如图2中所示,在检测到特定交互时,检测模块213将该交互(包括交互的类型和关于该交互的任何元数据)记录在具有参考标号222的活动和行为数据库中。
应用逻辑层可以包括一个或多个各种应用服务器模块214,其与(一个或多个)用户接口模块212相结合用从数据层中的各种数据源检索的数据生成各种用户接口(例如,网页)。在某些实施例的情况下,使用单独应用服务器模块214来实现与由社交联网服务提供的各种应用和/或服务相关联的功能性。
如图2中所示,数据层可以包括多个数据库,诸如用于存储简档数据的数据库218,所述简档数据包括成员简档数据以及针对各种组织(例如,公司、学校等)的简档数据两者。根据某些实施例,当一个人最初注册成为社交联网服务的成员时,那个人将被提示提供某些个人信息,诸如他或她的姓名、年龄(例如,出生日期)、性别、兴趣、联系信息、家乡、地址、成员的配偶和/或家庭成员的姓名、教育背景(例如,学校、专业、入学和/或毕业日期等)、雇佣历史、技能、职业组织等。此信息被存储于例如具有参考标号218的数据库中。同样地,当组织的代表最初向社交联网服务注册组织时,可以提示该代表提供关于组织的某些信息。此信息可以被存储于例如具有参考标号218的数据库或另一数据库(未示出)中。在某些实施例的情况下,可以(例如,在后台中或离线)处理简档数据以生成各种导出简档数据。例如,如果成员已提供了关于该成员在同一公司或不同公司所持有的各种职务头衔和达多长时间的信息,则此信息可以用来推断或推导出指示成员的总体资历水平或在特定公司内的资历水平的成员简档属性。在某些实施例的情况下,从一个或多个外部托管数据源导入或另外访问数据可以增强针对成员和组织两者的简档数据。例如,特别是在公司的情况下,可以从一个或多个外部数据源导入财务数据,并且使得其成为公司简档的一部分。
一旦注册,成员可以邀请其它成员,或者被其它成员邀请,以经由社交联网服务进行连接。“连接”可以要求成员的双边同意,使得两个成员确认该连接的建立。同样地,在某些实施例的情况下,成员可以选择“关注”另一成员。与建立连接相反,“关注”另一成员的概念通常是单边操作,并且至少在某些实施例的情况下,不要求被关注的成员的确认或批准。当一个成员关注另一个时,进行关注的成员可以接收到由被关注的成员公布的或者关于由被关注的成员进行的各种活动的状态更新(例如,在活动或内容流中)或其它消息。同样地,当成员关注组织时,成员变得有资格接收代表该组织公布的消息或状态更新。例如,代表成员正在关注的组织公布的消息或状态更新将出现在成员的个性化数据馈送中,通常称为活动流或内容流。在任何情况下,成员与其它成员或者与其它实体和对象建立的各种关联和关系被存储并维护于在图2中用参考标号220示出的社交图内。
当成员与经由社交联网服务而使得可用的各种应用、服务和内容进行交互时,可以跟踪成员的交互和行为(例如,观看的内容、选择的链接或按钮、所响应的消息等),并且可以例如由具有参考标号222的数据库如图2中所指示的那样记录和存储关于成员的活动和行为的信息。此记录活动信息然后可以由搜索引擎216用来确定针对搜索查询的搜索结果。
在某些实施例中,可以将数据库218、220和222并入到图1中的(一个或多个)数据库126中。然而,其它配置也在本公开的范围内。
虽然未示出,但在某些实施例的情况下,社交联网系统210提供应用编程接口(API)模块,经由该模块,应用和服务可以访问由社交联网服务提供或维护的各种数据和服务。例如,使用API,应用可以能够请求和/或接收一个或多个导航推荐。此类应用可以是基于浏览器的应用,或者可以是操作系统特定的。特别地,某些应用可以(至少部分地)在具有移动操作系统的一个或多个移动设备(例如,电话或平板计算设备)上驻存和执行。此外,虽然在许多情况下利用API的应用或服务可以是由运营社交联网服务的实体开发和维护的应用和服务,但除有关数据隐私的事之外,没有东西阻止API在特殊安排下被提供给公众或某些第三方,从而使得导航推荐可用于第三方应用和服务。
虽然搜索引擎216在本文中被称为用在社交联网服务的上下文中,但可设想其还可以在任何网站或在线服务的上下文中采用。另外,虽然本公开的特征在本文中被称为使用或呈现在网页的上下文中,但可设想任何用户接口视图(例如,移动设备上或桌面软件上的用户接口)在本公开的范围内。
图3是图示出根据示例实施例的搜索引擎216的组件的框图。在某些实施例中,搜索引擎216可以包括查询重写模块310、查询匹配模块320以及查询结果模块330中的一个或多个的任何组合。这些模块310、320和330可以驻存在具有存储器和至少一个处理器的机器(未示出)上。在某些实施例中,可以将这些模块310、320和330并入到图1中的(一个或多个)应用服务器118中。然而,可设想的是其它配置也在本公开的范围内。
查询重写模块310可以被配置成从搜索引擎216的用户接收包括词语的初始搜索查询。查询重写模块310还可以被配置成基于所述词语生成重写搜索查询。在某些实施例中,重写搜索查询的生成可以进一步基于对应于社交联网服务的至少一个成员的元数据。例如,查询重写模块310可以在生成重写搜索查询时使用与提交初始搜索查询的用户相关联的元数据。附加地或替换地,可以使用一个或多个其它用户的元数据来生成重写搜索查询。此类元数据可以包括但不限于任何简档数据、社交图数据和/或成员活动和行为数据,诸如存储在图2的数据库218、220和222中的那些。其它类型的元数据也在本公开的范围内。
在某些实施例中,查询重写模块310可以以将产生与仅仅基于词语匹配和静态排序的搜索相比更加多样化且更相关的搜索结果集的方式重写初始搜索查询。查询重写模块310可以基于初始搜索查询而生成重写搜索查询。该重写搜索查询可以包括一个或多个灵活算子。灵活算子可以包括一种搜索算子。搜索算子是可以起到用于搜索查询的函数一样的作用并缩窄搜索查询的搜索结果的语言结构。布尔算子(诸如AND(与)、OR(或)以及NOT(非))是搜索算子的示例。本公开的灵活算子(其在本文中也可以称为“FLEX”)使得搜索引擎216能够以高效的方式提供多样化且相关的搜索结果。
重写查询的每个灵活算子可以具有搜索结果要满足的对应条件。例如,如果用户正在社交联网网站上使用搜索引擎216以找人以为职务空缺进行招聘,则一个条件可以是作为搜索结果的一部分返回给用户的简档包括具有指定职务头衔的用户的简档。如果招聘人员正在针对程序员位置搜索程序员,则一个条件可以是包括在搜索结果中的用户简档针对职务头衔的元数据字段具有“程序员”。另一条件可以是其简档被作为搜索结果的一部分返回的用户至少通过最小指定连接度连接到指定用户(例如,作为搜索结果的一部分返回的用户具有与指定用户的第一连接度或第二连接度)。
灵活算子的每个条件可以具有满足目标。满足目标可以包括针对要满足对应条件的对应灵活算子的搜索结果的最小量的指示。该最小量可以是搜索结果的最小百分比。例如,灵活算子可以被配置成促使对应搜索查询的搜索结果的30%包括与指定用户具有第一连接度或第二连接度的用户简档。
在从初始搜索查询生成重写搜索查询的一个示例中,初始搜索查询可以包括已由用户输入到搜索字段的词语“程序员”。查询重写模块320可以生成以下重写搜索查询:
FLEX(头衔:程序员100% 连接:John Smith 30%)
该重写搜索查询可以指示如下请求:作为灵活算子的对应搜索结果返回的用户简档中的100%具有“程序员”与其当前职务头衔相关联,并且作为灵活算子的对应搜索结果返回的用户简档的至少30%通过一个或两个分离度连接到“John Smith”。
在某些实施例中,重写搜索查询可以包括嵌套式灵活算子。例如,查询重写模块320可以生成以下重写搜索查询:
FLEX0(FLEX1(技能:Java 60% 连接:John Smith 60%)100% 头衔:程序员100%)
内灵活算子(FLEX1)可以被配置成返回如下结果,其中针对内灵活算子(FLEX1)返回的用户简档的60%具有“Java”与其技能字段相关联,并且针对内灵活算子(FLEX1)返回的用户简档的至少60%通过一个或两个分离度连接到“John Smith”。外灵活算子(FLEX0)可以被配置成返回如下结果,其中针对外灵活算子(FLEX0)返回的用户简档的100%满足内灵活算子(FLEX1),并且针对外灵活算子(FLEX0)返回的用户简档的100%具有“程序员”与其当前职务头衔相关联。可以将外灵活算子(FLEX0)的结果提供为初始搜索查询的搜索结果,或者在呈现给用户(例如,提交初始搜索查询的用户)之前提供给其它处理组件或操作。
在某些实施例中,重写搜索查询包括具有重写搜索查询的所有搜索算子的分级算子树,无论其是否是标准搜索算子(例如,布尔搜索算子)的灵活算子。在某些实施例中,分级算子树的最上层包括灵活算子。在这方面,重写搜索查询中的第一算子可以包括灵活算子且没有任何其它类型的搜索算子。
灵活算子的其它配置也在本公开的范围内。此外,虽然在上述示例中使用了用户简档,但是可设想作为搜索索引的一部分的任何类型的文档在本公开的范围内。
查询匹配模块320可以被配置成接收重写搜索查询(例如,从查询重写模块310)。查询匹配模块320可以基于重写搜索查询从包括多个文档的搜索索引确定针对(一个或多个)灵活算子的搜索结果和因此的搜索查询。
不同于标准搜索算子(诸如与和或)的处理,本公开的特征可以并入跳过数的使用,所述跳过数使得查询匹配模块320能够选择多样化的搜索结果,而同时使搜索结果的质量(例如,诸如重要性和/或普及性之类的静态排序因数)最大化。可以针对重写搜索查询的每个条件确定对应跳过数。可以基于对应条件的对应满足目标来确定每个跳过数。在某些实施例中,查询匹配模块320确定其将响应于初始搜索查询而返回的搜索结果的总数。针对重写搜索查询中的每个条件,查询匹配模块320然后可以基于条件的对应满足目标来确定应满足该条件的搜索结果的最小数目。例如,如果查询匹配模块320确定针对初始搜索查询的搜索结果的总数将是100,并且针对条件的满足目标是30%,则查询匹配模块320可以确定应满足该条件的搜索结果的最小数目是30(100×30%=30)。然后可以通过从搜索结果的总数减去所确定的最小数目来确定针对该条件的跳过数,所述跳过数在本示例中将是70(100–30=70)。
此跳过数可以被查询匹配模块320用作在不满足对应条件的情况下在按照静态排序的降序搜索通过搜索索引期间可以匹配(例如,被选择成是针对对应灵活算子或搜索查询的结果的一部分)的文档的数目。当查询匹配模块320推进通过搜索索引时,从最高静态排序直至最低静态排序,每当其选择(例如,匹配)文档用于不满足重写搜索查询的条件的搜索结果时,可以递减该条件的对应跳过数,意味着现在少了一个可以做出的不满足该条件的选择。一旦已经选择的不满足条件的文档数等于原始跳过数(例如,跳过数已被递减至零),查询匹配模块320然后就可以推进至仅选择满足该条件的文档。通过延迟当将文档选择成是针对搜索查询(或作为搜索查询的一部分的灵活算子)的搜索结果的一部分时满足条件的要求,查询匹配模块320可以使搜索结果的质量最大化,选择在使用对应于跳过数的另一条件之前首先满足某个条件的最高排序文档的跳过数量来限制、缩窄或以其它方式约束将文档选择为搜索结果的一部分。
虽然本文中先前所讨论的示例满足目标包括采取搜索结果的最小百分比形式的要满足对应条件的针对对应灵活算子的搜索结果的最小量的指示,但可设想的是在其它示例实施例中,最小量的指示可以包括绝对数目。此外,可以用使用指示对应条件是必需的搜索算子(诸如“+”)以及使用指示对应条件是可选的搜索算子“-”来替换使用百分比来指示对应条件是必需的(例如,100%)还是可选的(例如,从1%至99%的任何百分比)。在这方面,可以替代地将查询“FLEX java 100% engineer 30%”表示为“+javaengineer[30]”,指示搜索结果中的至少30个应满足包括“工程师”的条件。
在某些示例实施例中,可以将FLEX查询实现为特殊顶级迭代器。该实施方式可以用这样的事实规定,即针对可选子句,如果可能的话必须返回所请求量的文档(或其它搜索结果)。在某些示例实施例中,返回的文档还应具有可能的最高静态排序。
在某些示例实施例中,可以修改初始查询以使得所有可选子句完全可选。结果得到的重写查询可以称为查询条件。作为修改的结果,可以获得正则布尔查询。可以收集具有大于零的所请求文档的对应最小数目(例如,上述示例中的[30])的所有可选子句。这些子句也可以称为未满足子句,并且其可以继续被视为查询的一部分直至已匹配了所请求文档的对应最小数目为止(例如,直至所请求文档的最小数目等于零为止,其中每当发生针对未满足子句的对应匹配时递减该数目)。可以使用跳过数来表示在不匹配未满足子句中的任何的情况下可以从查询条件检索的文档数。在某些示例实施例中,可以将跳过数设置成要返回的搜索结果的总数(例如,numToScore)。然后使用查询条件来检索文档直至跳过数等于零为止。在每个最后匹配时,如果未满足子句中的至少一个被匹配,则跳过数保持在相同值。针对被匹配的每个未满足子句,跳过数被递减一。当跳过数等于零时,未满足子句然后被视为必需子句。然后以类似方式对正则连结算子执行检索(例如,使用蛙跳式算法)。可以针对所有未满足子句计算最小文档ID,并且可以使查询条件张贴列表前进至此文档ID。重复此程序直至找到针对查询条件和至少一个未满足子句两者的匹配为止。一旦所有未满足子句都被满足,则查询执行可以终止。
查询结果模块330可以被配置成使(一个或多个)灵活算子的搜索结果中的任何呈现(例如,显示)给用户,诸如给提交初始搜索查询的用户。查询结果模块330可以被配置成确定要呈现搜索结果的顺序,诸如通过对搜索结果评分、分等级和排序。
下面将关于图4-6来另外详细地讨论查询重写模块310、查询匹配模块320以及查询结果模块330的特征。
图4是图示出根据示例实施例的使用灵活算子来确定搜索结果的图。在本示例中,初始搜索查询可以包括由用户输入到搜索字段中的词语“程序员”。查询重写模块320可以生成以下重写搜索查询:
FLEX(头衔:程序员100% 连接:John Smith 30%)
该重写搜索查询可以指示如下请求:作为灵活算子的对应搜索结果返回的用户简档中的100%具有“程序员”与其当前职务头衔相关联,并且作为灵活算子的对应搜索结果返回的用户简档的至少30%通过一个或两个分离度连接到“John Smith”。
示出了具有沿着Y轴自上而下按照静态排序的降序列出的文档的搜索索引(文档0、文档1、文档2)以及沿着X轴列出的重写搜索查询的条件(第1条件和第2条件)的图400。在图400中包括粗点以指示什么文档满足什么条件。在本示例中,可以确定针对初始搜索查询的搜索结果的总数将是100。结果,针对第一条件的跳过数是0(100–100=0),并且针对第二条件的跳过数是70(100–30=70)。
查询匹配模块320可以向下遍历通过搜索索引,从具有最高静态排序的文档(文档0)开始并选择满足第一条件的文档,而不管其是否满足第二条件。在本示例中,一旦选择了不满足第二条件的70个文档,查询匹配模块320就可以进入应急方式,并且要求文档的所有后续选择满足第二条件。在图4中,将选择文档0、1和2,因为其满足第一条件,而不管其不满足第二条件。由于它们的选择并不满足第二条件,所以每次都递减针对第二条件的跳过数,在文档0的选择之后从70至69,在文档1的选择之后从69至68,并且在文档2的选择之后从68至67。虽然文档3满足第二条件,但其未被选择,因为其不满足具有0的跳过数的第一条件。文档4被选作搜索结果,因为其满足第一条件。然而,由于其也满足第二条件,所以不递减第二条件的跳过数。
此选择过程持续直至选择了搜索结果的总数或者直至在搜索索引中不再有要选择或针对选择进行评估的文档(例如,查询匹配模块320已到达搜索索引的底部)为止。响应于针对第二条件的跳过数被递减至零,查询匹配模块320要求文档的任何后续选择满足第二条件。
图5是图示出根据示例实施例的使用灵活算子来确定搜索结果的图。在本示例中,初始搜索查询可以包括由用户输入到搜索字段中的词语“Java”。查询重写模块320可以生成以下重写搜索查询:
FLEX(技能:Java 60% 当前公司:Java 60%)
该重写搜索查询可以指示如下请求:作为灵活算子的对应搜索结果返回的用户简档的至少60%具有“Java”与技能字段相关联(例如,对应于简档的用户在其简档上将“Java”、诸如“Java编程”列为技能),并且作为灵活算子的对应搜索结果返回的用户简档的至少60%具有“Java”与当前公司字段相关联(例如,“Java”是在对应于该简档的用户的当前公司的名称中)。
示出了具有沿着Y轴自上而下按照静态排序的降序列出的文档的搜索索引(文档0、文档1、文档2)以及沿着X轴列出的重写搜索查询的条件(第1条件和第2条件)的图500。在图500中包括粗点以指示什么文档满足什么条件。在本示例中,可以确定针对初始搜索查询的搜索结果的总数将是100。结果,针对第一条件的跳过数是40(100–60=40),并且针对第二条件的跳过数是40(100–60=40)。
查询匹配模块320可以向下遍历通过搜索索引,从具有最高静态排序的文档(文档0)开始并选择满足第一条件的文档,而不管其是否满足第二条件。在本示例中,一旦选择了不满足第一条件的40个文档,查询匹配模块320就可以要求文档的所有后续选择满足第一条件。同样地,一旦选择了不满足第二条件的40个文档,查询匹配模块320就可以要求文档的所有后续选择满足第二条件。在图5中,将选择文档0、1和2,因为其满足第二条件,而不管其不满足第一条件。由于它们的选择并不满足第一条件,所以每次都递减针对第一条件的跳过数,在文档0的选择之后从40至39,在文档1的选择之后从39至38,并且在文档2的选择之后从38至37。由于文档0、1和2的选择满足第二条件,所以不递减针对第二条件的跳过数。文档3被选作搜索结果,因为其满足第一条件,而不管其不满足第二条件。由于文档3的选择不满足第二条件,所以第二条件的跳过数从40递减至39。然而,不递减第一条件的跳过数并将其保持在37,因为文档3满足第一条件。文档4被选择,因为其满足第一条件和第二条件两者,虽然仅需要选择满足条件中的一个。由于文档4满足两个条件,所以文档4的选择不引起第一条件和第二条件的对应跳过数中的任一个的递减。
此选择过程持续直至选择了搜索结果的总数或者直至在搜索索引中不再有要选择或针对选择进行评估的文档(例如,查询匹配模块320已到达搜索索引的底部)为止。响应于针对第一条件的跳过数被递减至零,查询匹配模块320要求文档的任何后续选择满足第一条件。同样地,响应于针对第二条件的跳过数被递减至零,查询匹配模块320要求文档的任何后续选择满足第二条件。
图6是图示出根据示例实施例的使用嵌套式灵活算子来确定搜索结果的图。在本示例中,初始搜索查询可以包括由用户输入到搜索字段中的词语“程序员”。查询重写模块320可以生成以下重写搜索查询:
FLEX0(FLEX1(技能:Java 60% 连接:John Smith 60%)100% 头衔:程序员100%)
内灵活算子(FLEX1)可以被配置成返回如下结果,其中针对内灵活算子(FLEX1)返回的用户简档的60%具有“Java”与其技能字段相关联,并且针对内灵活算子(FLEX1)返回的用户简档的至少60%通过一个或两个分离度连接到“John Smith”。外灵活算子(FLEX0)可以被配置成返回如下结果,其中针对外灵活算子(FLEX0)返回的用户简档的100%满足内灵活算子(FLEX1),并且针对外灵活算子(FLEX0)返回的用户简档的100%具有“程序员”与其当前职务头衔相关联。可以将外灵活算子(FLEX0)的结果提供为初始搜索查询的搜索结果,或者在呈现给用户(例如,提交初始搜索查询的用户)之前提供给其它处理组件或操作。虽然在本示例中仅示出了两个灵活算子,但可设想的是任何数目的嵌套式灵活算子的使用都在本公开的范围内。
示出了具有沿着Y轴自上而下按照静态排序的降序列出的文档的搜索索引(文档0、文档1、文档2)以及沿着X轴列出的重写搜索查询的条件(第1条件、第2条件以及第3条件)的图600。在图600中包括粗点以指示什么文档满足什么条件。在本示例中,可以确定针对初始搜索查询的搜索结果的总数将是100。结果,针对第一条件的跳过数是0(100–100=0),针对第二条件的跳过数是40(100–60=40),并且针对第三条件的跳过数是40(100–60=40)。内灵活算子(FLEX1)也可以具有对应满足目标和跳过数,因为其被嵌套在外部灵活算子(FLEX0)内。在本示例中,内灵活算子(FLEX1)的满足目标是100%,导致0的对应跳过数(100–100=0)。
在按照静态排序的降序搜索通过搜索索引期间,可以使用先前讨论的技术针对对应灵活算子进行文档的初步选择。由于文档0满足(FLEX0的)第一条件,所以其被选作针对FLEX0的预备文档。文档1被选作针对FLEX1的预备文档,因为文档1满足第二条件,而不管其不满足第三条件的事实。由于FLEX0包括针对FLEX1的100%的满足目标,文档0未满足FLEX1,所以文档0未被选作针对搜索查询的搜索结果。可以将文档0从针对搜索查询的搜索结果中排除。由于FLEX0包括针对第一条件的100%的满足目标,文档1未满足第一条件,所以文档1未被选作针对搜索查询的搜索结果。可以将文档1从针对搜索查询的搜索结果中排除。如在这里看到的,文档可以被初步选择以供考虑包括在搜索结果中,但是然后基于更高级的灵活算子而在随后被排除。
文档2可以被选作针对FLEX0和FLEX1两者的预备文档,因为其满足第一条件和第三条件两者。由于文档2满足重写搜索查询的分级算子树中的最高级灵活算子,所以其可以被选择成包括在针对搜索查询的搜索结果中。由于文档2未满足第二条件,所以第二条件的跳过数可以响应于文档2的选择而被从40递减至39。由于文档2满足第一条件和第二条件,所以第一条件和第二条件的对应跳过数可以保持相同(例如,未被递减)。
此选择过程持续直至选择了搜索结果的总数或者直至在搜索索引中不再有要选择或针对选择进行评估的文档(例如,查询匹配模块320已到达搜索索引的底部)为止。响应于针对各条件的跳过数中的任何是零或被递减至零,查询匹配模块320可以要求文档的任何后续选择满足对应于该跳过数的条件。
图7是图示出根据另一示例实施例的方法700的流程图。方法700可以由可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合的处理逻辑执行。在一个实施方式中,方法700由如上所述的图2-3的搜索引擎216或其模块中的一个或多个的任何组合执行。
在操作710处,可以(例如,由查询重写模块310)接收包括词语的初始搜索查询。在操作720处,可以(例如,由查询重写模块310)基于该词语生成重写搜索查询。在某些实施例中,重写搜索查询的生成可以进一步基于对应于社交联网服务的至少一个成员的元数据。在操作730处,可以(例如,由查询匹配模块320)接收重写搜索查询。重写搜索查询可以包括应用于所述词语的第一灵活算子、第一条件、指示要满足第一条件的针对第一灵活算子的搜索结果的最小量的第一满足目标、第二条件以及指示要满足第二条件的针对第一灵活算子的搜索结果的最小量的第二满足目标。在操作740处,可以(例如,由查询匹配模块320)从包括多个文档的搜索索引中确定针对第一灵活算子的搜索结果。在操作750处,可以(例如,由查询结果模块330)使针对第一灵活算子的搜索结果呈现给用户,诸如提交初始搜索查询的用户。
可设想的是,可以将在本公开内描述的其它特征中的任何并入到方法700中。
图8是图示出根据另一示例实施例的确定针对第一灵活算子的搜索结果的方法800的流程图。方法800可以由可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合的处理逻辑执行。在一个实施方式中,方法800由如上所述的图2-3的搜索引擎216或其模块中的一个或多个的任何组合执行。
在操作810处,可以基于第一满足目标来确定针对第一条件的第一跳过数。在操作820处,可以基于第二满足目标来确定针对第二条件的第二跳过数。在操作830处,在按照静态排序的降序搜索通过搜索索引期间,可以基于来自搜索索引的第一组文档满足第一条件而不要求第一组文档满足第二条件将第一组文档确定为是针对第一灵活算子的搜索结果的一部分,直至通过将第一组文档作为搜索结果的一部分的确定到达了第二跳过数为止。在操作840处,可以通过第一组文档作为搜索结果的一部分的确定来确定已到达第二跳过数。在操作850处,响应于到达第二跳过数,在按照静态排序的降序搜索通过索引期间,可以基于来自搜索索引的第二组文档满足第二条件而将第二组文档确定为是针对第一灵活算子的搜索结果的一部分。
可设想的是,可以将在本公开内描述的其它特征中的任何并入到方法800中。
图9是图示出根据另一示例实施例的通过第一组文档作为针对第一灵活算子的搜索结果的一部分的确定而确定已到达第二跳过数的方法900的流程图。方法900可以由可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合的处理逻辑执行。在一个实施方式中,方法900由如上所述的图2-3的搜索引擎216或其模块中的一个或多个的任何组合执行。
在操作910处,可以针对来自搜索索引的第一组文档中的每一个在不满足第二条件的情况下被确定为是搜索结果的一部分而递减第二跳过数。在操作920处,可以响应于第二跳过数被递减至零而确定已到达第二跳过数。
可设想的是,可以将在本公开内描述的其它特征中的任何并入到方法900中。
图10是图示出根据另一示例实施例的方法1000的流程图。方法1000可以由可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合的处理逻辑执行。在一个实施方式中,方法1000由如上所述的图2-3的搜索引擎216或其模块中的一个或多个的任何组合执行。
在某些实施例中,重写搜索查询还可以包括应用于第三条件的第二灵活算子、针对第三条件的第三满足目标以及第一灵活算子。第三满足目标可以指示要满足第三条件的针对第二灵活算子的搜索结果的最小量。
在操作1010处,可以基于第三满足目标来确定针对第三条件的第三跳过数。在操作1020处,在按照静态排序的降序搜索通过搜索索引期间,可以基于第一预备文档满足第一条件而不要求第一预备文档满足第二条件或第三条件从搜索索引中确定针对第一灵活算子的第一预备文档。在操作1030处,在按照静态排序的降序搜索通过搜索索引期间,可以基于第二预备文档满足第二条件而不要求第二预备文档满足第一条件或第三条件从搜索索引中确定针对第二灵活算子的第二预备文档。在操作1040处,在按照静态排序的降序搜索通过搜索索引期间,可以基于第三预备文档满足第三条件而不要求第三预备文档满足第一条件或第二条件从搜索索引中确定针对第二灵活算子的第三预备文档。在操作1050处,可以将第三预备文档选择成包括在针对重写搜索查询的搜索结果中。在操作1060处,可以将第一预备文档和第二预备文档选择成从重写搜索查询中排除。在操作1070处,可以基于将第一预备文档和第二预备文档选择成从重写搜索查询中排除来递减针对第一条件的第一跳过数和针对第二条件的第二跳过数。
可设想的是,可以将在本公开内描述的其它特征中的任何并入到方法1000中。
示例移动设备
图11是图示出根据示例实施例的移动设备1100的框图。移动设备1100可以包括处理器1102。处理器1102可以是适合于移动设备1100的各种不同类型的商业上可获得的处理器中的任何(例如,XScale架构微处理器、无互锁流水级(MIPS)架构处理器的微处理器或另一类型的处理器)。存储器1104(诸如随机存取储器(RAM)、闪存或其它类型的存储器)通常是处理器1102可访问的。存储器1104可以被适配成存储操作系统(OS)1106以及应用程序1108,诸如可以向用户提供LBS的移动位置使能的应用。处理器1102可以直接地或者经由适当的中间硬件耦合到显示器1110和一个或多个输入/输出(I/O)设备1112,诸如键区、触摸板传感器、扩音器等。同样地,在某些实施例中,处理器1102可以耦合到与天线1116对接的收发机1114。收发机1114可以被配置成经由天线1116而发送和接收蜂窝网络信号、无线数据信号或其它类型的信号,取决于移动设备1100的性质。此外,在某些配置中,GPS接收机1118也可以利用天线1116来接收GPS信号。
模块、组件和逻辑
某些实施例在本文中被描述为包括逻辑或许多组件、模块或机构。模块可以构成软件模块(例如,(1)在非临时机器可读介质上或者(2)在传输信号中体现的代码)或者硬件实现的模块。硬件实现的模块是能够执行某些操作的有形单元,并且可以以某种方式来配置或布置。在示例实施例中,可以通过软件(例如,应用或应用部分)将一个或多个计算机系统(例如,独立式、客户端或服务器计算机系统)或者一个或多个处理器配置为进行操作以执行如本文中所述的某些操作的硬件实现的模块。
在各种实施例中,可以以机械方式或以电子方式实现硬件实现的模块。例如,硬件实现模块可以包括被永久地配置成执行某些操作的专用电路或逻辑(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))。硬件实现模块还可以包括通过软件临时地配置成执行某些操作的可编程逻辑或电路(例如,如被包含在通用处理器或其它可编程处理器内)。将认识到的是,成本和时间考虑可以驱动以机械方式、用专用且永久配置的电路或者用临时配置的电路(例如,用软件配置)来实现硬件实现模块的决策。
因此,应将术语“硬件实现模块”理解成包含有形实体,是在物理上构造、永久地配置(例如,硬接线)或临时地或暂时地配置(例如,编程)成以某种方式操作和/或执行本文中所述的某些操作的实体。考虑其中硬件实现模块被临时地配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件实现模块中的每一个。例如,在硬件实现模块包括使用软件配置的通用处理器的情况下,可以在不同的时间将通用处理器配置为各不同硬件实现模块。软件可以相应地将处理器例如配置成在一个时刻构成特定硬件实现模块并在不同时刻构成不同的硬件实现模块。
硬件实现模块可以向其它硬件实现模块提供信息和从其接收信息。因此,可以将所述硬件实现模块视为被通信耦合。在同时地存在多个此类硬件实现模块的情况下,可以通过连接硬件实现模块的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件实现模块在不同的时间配置或实例化的实施例中,可以例如通过多个硬件实现模块可访问的存储器结构中的信息的存储和检索来实现此类硬件实现模块之间的通信。例如,一个硬件实现模块可以执行操作,并且将该操作的输出存储在其被通信耦合到的存储器设备。另一硬件实现模块然后可以在稍后的时间访问该存储器设备以检索和处理所存储的输出。硬件实现模块还可以发起与输入或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。
本文中所述的示例方法的各种操作可以至少部分地由被临时地配置(例如,用软件)或永久地配置成执行相关操作的一个或多个处理器来执行。无论是临时地还是永久地配置,此类处理器可以构成进行操作以执行一个或多个操作或功能的处理器实现模块。在本文中提及的模块在某些示例实施例中可以包括处理器实现模块。
同样地,本文中所述的方法可以至少部分地是处理器实现的。例如,方法的操作中的至少某些可以由一个或多个处理器或处理器实现模块执行。操作中的某些的执行可以分布在一个或多个处理器之间,不仅驻存在单个机器内,而是跨许多机器部署。在某些示例实施例中,一个或多个处理器可以位于单个位置中(例如,在家庭环境、办公环境内或者作为服务器农场),而在其它实施例中可以将处理器跨许多位置分布。
一个或多个处理器还可以进行操作以支持“云计算”环境中或者作为“软件即服务”(SaaS)的相关操作的执行。例如,操作中的至少某些可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可经由网络(例如,互联网)和经由一个或多个适当接口(例如,应用程序接口(API))访问。
电子装置和系统
可以在数字式电子电路中或者在计算机硬件、固件、软件中或在其组合中实现示例实施例。可以使用计算机程序产品(例如在信息载体中、例如在用于由数据处理装置(例如可编程处理器、计算机或多个计算机)执行或控制其操作的机器可读介质中有形地体现的计算机程序)来实现示例实施例。
可以用任何形式的编程语言(包括编译或解释语言)来编写计算机程序,并且可以将其以任何形式部署,包括作为独立程序或作为模块、子例程或适合于在计算环境中使用的其它单元。可以将计算机程序部署成在一个计算机上或者在位于一个地点处或跨多个地点分布并被通信网络互连的多个计算机上执行。
在示例实施例中,操作可以由执行计算机程序以通过对输入数据进行操作并生成输出来实行功能的一个或多个可编程处理器实行。方法操作还可以由专用逻辑电路(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))执行,并且可以将示例实施例的装置实现为所述专用逻辑电路。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并通常通过通信网络进行交互。客户端和服务器的关系借助于在各计算机上运行且彼此具有客户端-服务器关系的计算机程序发生。在部署可编程计算系统的实施例中,将认识到的是,硬件和软件架构两者都值得考虑。具体地,将认识到的是,是用永久配置硬件(例如,ASIC)、用临时配置硬件(例如,软件和可编程处理器的组合)还是用永久和临时配置硬件的组合来实现某些功能性的选择可以是设计选择。在各种示例实施例中,下面阐述了可以部署的硬件(例如,机器)和软件架构。
示例机器架构和机器可读介质
图12是根据示例实施例的可以在其上执行本文中所述的方法的示例计算机系统1200的框图。在替换实施例中,机器充当独立设备,或者可以连接(例如,联网)到其它机器。在联网部署中,机器可以以服务器-客户端网络环境中的服务器或客户端机器的能力或者作为对等(或分布式)网络环境中的对等机器进行操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、网络路由器、交换机或桥接器或能够执行指定将由该机器采取的动作的指令(连续或以其它方式)的任何机器。此外,虽然仅图示出单个机器,但还应将术语“机器”理解成包括单独地或共同地执行一组(或多组)指令以实行本文所讨论的方法中的任何一个或多个的机器的任何集合。
示例计算机系统1200包括处理器1202(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器1204和静态存储器1206,其经由总线1208相互通信。计算机系统1200还可以包括视频显示单元1210(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统1200还包括字母数字输入设备1212(例如,键盘或触敏显示屏)、用户接口(UI)导航设备1214(例如,鼠标)、磁盘驱动单元1216、信号生成设备1218(例如,扬声器)和网络接口设备1220。
机器可读介质
磁盘驱动单元1216包括机器可读介质1222,其上存储有体现本文中所述的方法或功能中的任何一个或多个或者被其利用的一组或多组指令和数据结构(例如,软件)1224。指令1224还可以在其被计算机系统1200、主存储器1204和也构成机器可读介质的处理器1202执行期间完全地或至少部分地驻存在主存储器1204内和/或处理器1202内。
虽然机器可读介质1222在示例实施例中被示为是单个介质,但术语“机器可读介质”可以包括存储一个或多个指令或数据结构的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。还应将术语“机器可读介质”理解成包括能够存储、编码或承载指令以便由机器执行并促使该机器实行本公开的方法中的任何一个或多个或者能够存储、编码或承载被此类指令利用或与之相关联的数据结构的任何有形介质。因此,应将术语“机器可读介质”理解成包括但不限于固态存储器以及光和磁介质。机器可读介质的特定示例包括:非易失性存储器,举例来说包括半导体存储器设备,例如,可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)以及闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。
传输介质
可以进一步使用传输介质通过通信网络1226发送或接收指令1224。可以使用网络接口设备1220和许多众所周知的传输协议中的任何一个(例如,HTTP)来发送指令1224。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、互联网、移动电话网、普通老式电话(POTS)网络以及无线数据网(例如,WiFi和WiMax网络)。应将术语“传输介质”理解成包括能够对指令进行存储、编码或承载以便由机器执行的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以促进此类软件的通信。在一个实施例中,承载机器可读指令的机器可读介质可以包括有形介质或者无形或传输介质。
虽然已参考特定示例实施例描述了实施例,但将显而易见的是,可以对这些实施例进行各种修改和变更而不脱离本公开的更宽泛的范围。因此,应在例证性而不是限制性意义上考虑本说明书和附图。构成其一部分的附图以例证而非限制的方式示出了其中可以实施本主题的特定实施例。足够详细地描述了所示实施例以使得本领域技术人员能够实施本文中公开的教导。可以利用并从其导出其它实施例,使得可以进行结构和逻辑替换和改变而不脱离本公开的范围。因此,不应在限制性意义上理解本具体实施方式,并且各种实施例的范围仅仅由所附权利要求连同此类权利要求被授权的等价物的全部范围限定。
虽然在本文中已图示并描述了特定实施例,但应认识到的是,可以用计划实现相同目的的任何布置来代替所示的特定实施例。本公开意图涵盖各种实施例的任何和所有改编和变更。基于回顾以上描述,上述实施例的组合以及在本文中并未具体地描述的其它实施例对于本领域技术人员而言将是显而易见的。
Claims (21)
1.一种计算机实现的方法,包括:
接收重写搜索查询,其包括应用于词语的第一灵活算子、第一条件、指示要满足第一条件的针对第一灵活算子的搜索结果的最小量的第一满足目标、第二条件以及指示要满足第二条件的针对第一灵活算子的搜索结果的最小量的第二满足目标;以及
由具有存储器和至少一个处理器的机器来从包括多个文档的搜索索引确定针对第一灵活算子的搜索结果,针对第一灵活算子的搜索结果的确定包括:
基于第一满足目标来确定针对第一条件的第一跳过数;
基于第二满足目标来确定针对第二条件的第二跳过数;
在按照静态排序的降序搜索通过所述搜索索引期间,基于来自所述搜索索引的第一组文档满足第一条件而不要求第一组文档满足第二条件将第一组文档确定为针对第一灵活算子的搜索结果的一部分,直到通过将第一组文档作为搜索结果的一部分的确定到达了第二跳过数;以及
响应于到达第二跳过数,在按照静态排序的降序搜索通过索引期间,基于来自所述搜索索引的第二组文档满足第二条件而将第二组文档确定为是针对第一灵活算子的搜索结果的一部分。
2.权利要求1的方法,还包括:
接收包括所述词语的初始搜索查询;以及
基于所述词语生成所述重写搜索查询。
3.权利要求2的方法,其中,所述重写搜索查询的生成进一步基于对应于社交联网服务的至少一个成员的元数据。
4.任一前述权利要求的方法,还包括通过第一组文档作为针对第一灵活算子的搜索结果的一部分的确定来确定已到达第二跳过数,其中,确定已到达第二跳过数包括:
针对来自所述搜索索引的第一组文档中的每一个在不满足第二条件的情况下被确定为是搜索结果的一部分而递减第二跳过数;以及
响应于针对第二条件的跳过数被递减至零而确定已到达第二跳过数。
5.任一前述权利要求的方法,其中,所述重写搜索查询还包括应用于第三条件的第二灵活算子、针对第三条件的第三满足目标以及第一灵活算子,第三满足目标指示要满足第三条件的针对第二灵活算子的搜索结果的最小量。
6.权利要求5的方法,还包括:
基于第三满足目标来确定针对第三条件的第三跳过数;
在按照静态排序的降序搜索通过所述搜索索引期间,基于第一预备文档满足第一条件而不要求第一预备文档满足第二条件或第三条件从所述搜索索引中确定针对第一灵活算子的第一预备文档;
在按照静态排序的降序搜索通过所述搜索索引期间,基于第二预备文档满足第二条件而不要求第二预备文档满足第一条件或第三条件从所述搜索索引中确定针对第二灵活算子的第二预备文档;
在按照静态排序的降序搜索通过所述搜索索引期间,基于第三预备文档满足第三条件而不要求第三预备文档满足第一条件或第二条件从所述搜索索引中确定针对第二灵活算子的第三预备文档;
将第三预备文档选择成包括在针对所述重写搜索查询的搜索结果中;
将第一预备文档和第二预备文档选择成从所述重写搜索查询中排除;以及
基于将第一预备文档和第二预备文档选择成从所述重写搜索查询中排除来递减第一跳过数和第二跳过数。
7.权利要求1至4中的任一项的方法,其中,所述重写搜索查询包括具有所述重写搜索查询的所有搜索算子的分级算子树,第一灵活算子在所述分级算子树的最上层,没有其它搜索算子在其之上。
8.任一前述权利要求的方法,其中,第一条件包括所述词语存在于与被考虑用于确定为搜索结果中的一个的文档相关联的指定字段中。
9.任一前述权利要求的方法,其中,第二条件包括与被考虑用于确定为搜索结果中的一个的文档相关联的社交联网服务的第一成员和所述社交联网服务的第二成员之间的最小连接度。
10.任一前述权利要求的方法,还包括使针对第一灵活算子的搜索结果呈现给提交所述初始搜索查询的用户。
11.一种系统,包括:
存储器;
至少一个处理器,其被耦合到所述存储器;以及
至少一个模块,可被所述至少一个处理器执行,所述模块被配置成接收重写搜索查询,所述重写搜索查询包括应用于词语的第一灵活算子、第一条件、指示要满足第一条件的针对第一灵活算子的搜索结果的最小量的第一满足目标、第二条件以及指示要满足第二条件的针对第一灵活算子的搜索结果的最小量的第二满足目标,并且被配置成从包括多个文档的搜索索引确定针对第一灵活算子的搜索结果,针对第一灵活算子的搜索结果的确定包括:
基于第一满足目标来确定针对第一条件的第一跳过数;
基于第二满足目标来确定针对第二条件的第二跳过数;
在按照静态排序的降序搜索通过所述搜索索引期间,基于来自所述搜索索引的第一组文档满足第一条件而不要求第一组文档满足第二条件将第一组文档确定为针对第一灵活算子的搜索结果的一部分,直到通过将第一组文档作为搜索结果的一部分的确定到达了第二跳过数;以及
响应于到达第二跳过数,在按照静态排序的降序搜索通过索引期间,基于来自所述搜索索引的第二组文档满足第二条件而将第二组文档确定为是针对第一灵活算子的搜索结果的一部分。
12.权利要求11的系统,其中,所述至少一个模块进一步被配置成:
接收包括所述词语的初始搜索查询;以及
基于所述词语生成所述重写搜索查询。
13.权利要求12的系统,其中,所述重写搜索查询的生成进一步基于对应于社交联网服务的至少一个成员的元数据。
14.权利要求11至13中的任一项的系统,其中,所述至少一个模块进一步被配置成通过第一组文档作为针对第一灵活算子的搜索结果的一部分的确定来确定已到达第二跳过数,其中,确定已到达第二跳过数包括:
针对来自所述搜索索引的第一组文档中的每一个在不满足第二条件的情况下被确定为是搜索结果的一部分而递减第二跳过数;以及
响应于针对第二条件的跳过数被递减至零而确定已到达第二跳过数。
15.权利要求11至14中的任一项的系统,其中,所述重写搜索查询还包括应用于第三条件的第二灵活算子、针对第三条件的第三满足目标以及第一灵活算子,第三满足目标指示要满足第三条件的针对第二灵活算子的搜索结果的最小量。
16.权利要求15的系统,其中,所述至少一个模块进一步被配置成:
基于第三满足目标来确定针对第三条件的第三跳过数;
在按照静态排序的降序搜索通过所述搜索索引期间,基于第一预备文档满足第一条件而不要求第一预备文档满足第二条件或第三条件从所述搜索索引中确定针对第一灵活算子的第一预备文档;
在按照静态排序的降序搜索通过所述搜索索引期间,基于第二预备文档满足第二条件而不要求第二预备文档满足第一条件或第三条件从所述搜索索引中确定针对第二灵活算子的第二预备文档;
在按照静态排序的降序搜索通过所述搜索索引期间,基于第三预备文档满足第三条件而不要求第三预备文档满足第一条件或第二条件从所述搜索索引中确定针对第二灵活算子的第三预备文档;
将第三预备文档选择成包括在针对所述重写搜索查询的搜索结果中;
将第一预备文档和第二预备文档选择成从所述重写搜索查询中排除;以及
基于将第一预备文档和第二预备文档选择成从所述重写搜索查询中排除来递减第一跳过数和第二跳过数。
17.权利要求11至16中的任一项的系统,其中,所述重写搜索查询包括具有所述重写搜索查询的所有搜索算子的分级算子树,第一灵活算子在所述分级算子树的最上层,没有其它搜索算子在其之上。
18.权利要求11至17中的任一项的系统,其中,第一条件包括所述词语存在于与被考虑用于确定为搜索结果中的一个的文档相关联的指定字段中。
19.权利要求11至18中的任一项的系统,其中,第二条件包括与被考虑用于确定为搜索结果中的一个的文档相关联的社交联网服务的第一成员和所述社交联网服务的第二成员之间的最小连接度。
20.一种存储一组指令的机器可读介质,所述指令在被处理器执行时促使所述处理器实行操作,所述操作包括:
接收重写搜索查询,其包括应用于词语的第一灵活算子、第一条件、指示要满足第一条件的针对第一灵活算子的搜索结果的最小量的第一满足目标、第二条件以及指示要满足第二条件的针对第一灵活算子的搜索结果的最小量的第二满足目标;以及
从包括多个文档的搜索索引确定针对第一灵活算子的搜索结果,针对第一灵活算子的搜索结果的确定包括:
基于第一满足目标来确定针对第一条件的第一跳过数;
基于第二满足目标来确定针对第二条件的第二跳过数;
在按照静态排序的降序搜索通过所述搜索索引期间,基于来自所述搜索索引的第一组文档满足第一条件而不要求第一组文档满足第二条件将第一组文档确定为针对第一灵活算子的搜索结果的一部分,直到通过将第一组文档作为搜索结果的一部分的确定到达了第二跳过数;以及
响应于到达第二跳过数,在按照静态排序的降序搜索通过索引期间,基于来自所述搜索索引的第二组文档满足第二条件而将第二组文档确定为是针对第一灵活算子的搜索结果的一部分。
21.一种承载一组指令的机器可读介质,所述指令在被处理器执行时促使所述处理器实行权利要求1至10中的任一项的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462031767P | 2014-07-31 | 2014-07-31 | |
US62/031,767 | 2014-07-31 | ||
US14/584,813 | 2014-12-29 | ||
US14/584,813 US20160034532A1 (en) | 2014-07-31 | 2014-12-29 | Flexible operators for search queries |
PCT/US2015/022313 WO2016018468A1 (en) | 2014-07-31 | 2015-03-24 | Flexible operators for search queries |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107111619A true CN107111619A (zh) | 2017-08-29 |
Family
ID=55180249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580053622.3A Withdrawn CN107111619A (zh) | 2014-07-31 | 2015-03-24 | 用于搜索查询的灵活算子 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160034532A1 (zh) |
EP (1) | EP3175374A1 (zh) |
CN (1) | CN107111619A (zh) |
WO (1) | WO2016018468A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779136B2 (en) * | 2014-09-30 | 2017-10-03 | Linkedin Corporation | Rearranging search operators |
US9645816B2 (en) * | 2015-09-25 | 2017-05-09 | Linkedin Corporation | Multi-language code search index |
US10505799B2 (en) * | 2017-03-20 | 2019-12-10 | Motorola Mobility Llc | System information for changing a configuration |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7383270B1 (en) * | 2004-02-03 | 2008-06-03 | Teradata Us, Inc. | Compressing data stored in an intermediate or result table of a database |
US7574426B1 (en) * | 2005-03-31 | 2009-08-11 | A9.Com, Inc. | Efficiently identifying the items most relevant to a current query based on items selected in connection with similar queries |
US7685106B2 (en) * | 2005-04-29 | 2010-03-23 | International Business Machines Corporation | Sharing of full text index entries across application boundaries |
JP5027803B2 (ja) * | 2005-05-20 | 2012-09-19 | エヌエイチエヌ ビジネス プラットフォーム コーポレーション | クエリマッチングシステム及びその方法、該方法を実行するためのプログラムが記録されたコンピュータ読取可能な記録媒体 |
US7624101B2 (en) * | 2006-01-31 | 2009-11-24 | Google Inc. | Enhanced search results |
US20070203893A1 (en) * | 2006-02-27 | 2007-08-30 | Business Objects, S.A. | Apparatus and method for federated querying of unstructured data |
US7752195B1 (en) * | 2006-08-18 | 2010-07-06 | A9.Com, Inc. | Universal query search results |
US8024328B2 (en) * | 2006-12-18 | 2011-09-20 | Microsoft Corporation | Searching with metadata comprising degree of separation, chat room participation, and geography |
US20130339147A1 (en) * | 2006-12-29 | 2013-12-19 | Google Inc. | Custom content and advertising |
US8244750B2 (en) * | 2007-03-23 | 2012-08-14 | Microsoft Corporation | Related search queries for a webpage and their applications |
US7792813B2 (en) * | 2007-08-31 | 2010-09-07 | Microsoft Corporation | Presenting result items based upon user behavior |
US20100030733A1 (en) * | 2008-08-01 | 2010-02-04 | Draughn Jr Alphonza | Transforming SQL Queries with Table Subqueries |
US8161035B2 (en) * | 2009-06-04 | 2012-04-17 | Oracle International Corporation | Query optimization by specifying path-based predicate evaluation in a path-based query operator |
US20110179025A1 (en) * | 2010-01-21 | 2011-07-21 | Kryptonite Systems Inc | Social and contextual searching for enterprise business applications |
US20120123863A1 (en) * | 2010-11-13 | 2012-05-17 | Rohit Kaul | Keyword publication for use in online advertising |
US9529908B2 (en) * | 2010-11-22 | 2016-12-27 | Microsoft Technology Licensing, Llc | Tiering of posting lists in search engine index |
US20120150861A1 (en) * | 2010-12-10 | 2012-06-14 | Microsoft Corporation | Highlighting known answers in search results |
US8825620B1 (en) * | 2011-06-13 | 2014-09-02 | A9.Com, Inc. | Behavioral word segmentation for use in processing search queries |
US20130060744A1 (en) * | 2011-09-07 | 2013-03-07 | Microsoft Corporation | Personalized Event Search Experience using Social data |
US20130110827A1 (en) * | 2011-10-26 | 2013-05-02 | Microsoft Corporation | Relevance of name and other search queries with social network feature |
US8983991B2 (en) * | 2012-07-27 | 2015-03-17 | Facebook, Inc. | Generating logical expressions for search queries |
US8935255B2 (en) * | 2012-07-27 | 2015-01-13 | Facebook, Inc. | Social static ranking for search |
US10032234B2 (en) * | 2013-01-29 | 2018-07-24 | Facebook, Inc. | Ranking search results using diversity groups |
-
2014
- 2014-12-29 US US14/584,813 patent/US20160034532A1/en not_active Abandoned
-
2015
- 2015-03-24 WO PCT/US2015/022313 patent/WO2016018468A1/en active Application Filing
- 2015-03-24 EP EP15716254.6A patent/EP3175374A1/en not_active Ceased
- 2015-03-24 CN CN201580053622.3A patent/CN107111619A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP3175374A1 (en) | 2017-06-07 |
US20160034532A1 (en) | 2016-02-04 |
WO2016018468A1 (en) | 2016-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10963293B2 (en) | Interactions with contextual and task-based computing environments | |
US10878361B2 (en) | System and method to generate interactive user interface for visualizing and navigating data or information | |
US9823813B2 (en) | Apparatus and methods for performing an action on a database record | |
US9706011B2 (en) | Personalized real estate event feed | |
US10372791B2 (en) | Content customization | |
US8660881B2 (en) | Mechanism for facilitating dynamic visual workflow and task generation in an on-demand services environment | |
US8972421B2 (en) | Systems and methods for propagating a global filter to individual datasets | |
US10127297B2 (en) | Dynamic integration of disparate database architectures for efficient management of resources in an on-demand services environment | |
US20140330821A1 (en) | Recommending context based actions for data visualizations | |
US9245026B1 (en) | Increasing the relevancy of search results across categories | |
US8898656B2 (en) | Mechanism for facilitating dynamic format transformation of software applications in an on-demand services environment | |
US20130218880A1 (en) | Method and system for providing a recommended product from a customer relationship management system | |
US20130185106A1 (en) | Using social media objects for content curation, management, and engagement facilitation | |
WO2015179648A1 (en) | User interactions using digital content | |
US11132413B2 (en) | Providing travel or promotion based recommendation associated with social graph | |
US8990700B2 (en) | Rating and review interface | |
CN105210061A (zh) | 加标签的搜索结果维护 | |
US10055702B2 (en) | Facilitating dynamic collection of data and generation of visual workflow in an on-demand services environment | |
US9678935B2 (en) | Facilitating dynamic cross-block joining of reports in an on-demand services environment | |
US9959562B1 (en) | Method, medium, and system for local item fulfillment in a market hierarchy | |
US20140068450A1 (en) | Personalized Curation and Customized Social Interaction | |
CN107111619A (zh) | 用于搜索查询的灵活算子 | |
US20160328810A1 (en) | Systems and methods for communications regarding a management and scoring tool and search platform | |
US20150254366A1 (en) | Application software, electronic forms, and associated methods | |
US20150370803A1 (en) | Automatic positioning of elements in a computer-based document |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180516 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: American California Applicant before: LINKEDIN CORPORATION |
|
TA01 | Transfer of patent application right | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170829 |
|
WW01 | Invention patent application withdrawn after publication |