搜索系统的制作方法

文档序号:15575436发布日期:2018-09-29 05:25阅读:160来源:国知局
本申请涉及软件和/或硬件技术的
技术领域
,且在一个实例实施例中,本申请涉及用以优化在线社交网络系统中的搜索过程的系统和方法。
背景技术
:在线社交网络可被视为用以在虚拟空间中连接人的平台。在线社交网络可以是基于网络的平台,例如社交网络网站,并可由使用通过网络浏览器或通过移动电话等等上提供的移动应用程序来进行存取。在线社交网络可以是被特别设计用于商业界的业务聚焦的社交网络,其中注册的成员确定并记录它们专业地认识并信任的人的网络。每个注册成员可由成员简档表示。成员简档可由一个或多个网页或成员信息的呈可扩展标记语言(extensiblemarkuplanguage,xml)、javascript对象表示(javascriptobjectnotation,json)或类似格式的结构化表示表示。社交网络网站的成员的简档网页可强调相关联成员的工作经历和教育。附图说明在附图的图中作为实例而非限制说明本发明的实施例,其中相同参考数字指示类似元件,且其中:图1是可在其内实施用以优化在线社交网络系统中的搜索过程的实例方法和系统的网络环境的图形表示;图2是根据一个实例实施例的用以优化在线社交网络系统中的搜索过程的系统的框图;图3是说明根据实例实施例的用以优化在线社交网络系统中的搜索过程的方法的流程图;且图4是呈计算机系统形式的实例机器的图形表示,可在所述机器内执行用于致使所述机器以执行本文中论述的方法中的任何一个或多个的一组指令。具体实施方式描述了一种用以优化在线社交网络系统中的搜索过程的方法和系统。在以下描述中,出于解释的目的,阐述许多特定细节以便提供对本发明的实施例的透彻理解。但是,所属领域的技术人员将显而易见,可以在无这些特定细节的情况下实践本发明。如本文中所使用,术语“或”可在包含性或独占式意义上解释。类似地,术语“例示性”应仅仅意味着某事的实例或范例,并不一定意味着实现目标的优选或理想的手段。此外,虽然下文论述的各种例示性实施例可利用基于java的服务器和相关环境,但是仅仅出于公开清晰起见而给出实施例。因此,任何类型的服务器环境,包含各种系统架构,可使用本文中所描述的应用中心的资源系统和方法的各种实施例,并被视为处于本发明的范围内。出于此描述的目的,短语“在线社交网络应用”可被称作短语“在线社交网络”或仅称作“社交网络”,并可与“在线社交网络”或“社交网络”互换地使用。还应注意,在线社交网络可以是任何类型的在线社交网络,例如专业网络、基于兴趣的网络、或准许用户作为注册成员加入的任何在线联网系统。出于此描述的目的,在线社交网络的注册成员可被简称作成员。在线社交网络的每个成员由成员简档(还被称作成员的简档或仅称作简档)表示。社交网络成员的简档信息可包含个人信息,例如成员的名称、成员的当前和先前地理位置、成员的当前和先前就业信息、与成员的教育相关的信息、关于成员的专业成就的信息、出版物、专利等等。社交网络成员的简档信息还可包含关于成员的专业技能的信息,例如“产品管理”、“专利审查”、“图像处理”等等。成员的简档还可包含关于成员的当前和过去就业的信息,例如公司的标识、由相关联成员在相应公司保持的专业头衔、以及成员在那些公司的就业日期。成员简档可与指示成员的与社交网络的其它成员的连接的社交链接相关联。社交网络的任何两个成员可指示其在社交网络的情境下“连接”的相互意愿,这是因为他们可查看彼此的简档、彼此的简档建议和认可,并通过社交网络以其它方式接触。在社交网络的情境下连接的成员可被称为彼此的“连接”。可包含于成员简档中以特征化或描述相应相关联成员的各项可作为所谓的“简档项”存储于在线社交系统中。可基于其在成员简档中的相应用途而对简档项进行分类。举例来说,一种类别的简档项可以是包含可用以描述成员的专业技能的例如“统计模型化”、“云端计算”、“专利审查”等等项的“技能”。举例来说,另一种类别可包含表示地理位置的项。在一个实例实施例中,在线社交网络系统维持关于各种组织的信息以及所谓的公开招聘。出于此描述的目的,公开招聘是以特定组织包含雇主可相对于职位公布的信息的用电子方式存储的实体。公开招聘中的信息可包含例如行业的名称、职位的名称、反映所需和/或合乎需要技能的项、职位的地理位置、组织的名称等等。在线社交网络系统还可存储或存取各种其它电子出版物,例如新闻文章、科技论文、图像等等。相对于由在线社交网络系统存储或可存取的各种文档,在线社交网络系统可包含被配置成处理来自用户的搜索请求的搜索引擎。在在线社交网络系统的情境下,文档或出版物可被理解为存储于在线社交网络系统中或可由在线社交网络系统存取的任何内容项,例如新闻文章、科技论文、公开招聘、表示公司的文档等等。为了增大响应于搜索查询而找到相关文档的速度和性能,搜索引擎可利用倒排索引,倒排索引是包括纪录的索引数据结构,其中每条纪录存储内容项(还被仅称作“项”)到包含那个内容项的那些文档的标识符(或到标识符的指标)的映射。应注意,内容项可明确地或隐含地存在于文档中。在下文进一步论述确定内容项隐含地存在于文档中的一些实例。在下表1中展示来自倒排索引的部分的实例。表1项1到doc_id1的指标…到doc_idm的指标…………项n到doc_id1的指标…到doc_idn的指标在一个实例实施例中,提供所谓的经扩增搜索和索引系统以选择性地扩增倒排索引来包含来自简档项的特征化或描述在线社交网络系统的成员的额外项。举例来说,最初,倒排搜索索引会缺乏项“旧金山湾区”、“软件架构师”或“数据忍者”。如果这些项在存储于在线社交网络系统中的简档项集合中,那么可通过这些项扩增倒排索引。在一个实施例中,可基于相应项出现在成员简档中的频率而选择来自简档项的项,通过所述项扩增倒排搜索索引。在一些实施例中,通过存储于在线社交网络系统中的简档项集合中的所有项来扩增倒排索引。经扩增搜索和索引系统还可利用分析器软件模块或查找表或这两者以将一个项(其可以是由一个或多个字组组成的字母数字符串)转译成另一项,并将经转译项包含到倒排索引中。举例来说,项“软件工程师”可被转译成项“软件开发者”。如上文提到,倒排索引中的每条纪录存储内容项(还被仅称作“项”)到明确地或隐含地包含那个内容项的那些文档的标识符的映射。可通过例如查阅存储于在线社交网络系统中的其它数据或监测在线社交网络系统中的与文档相关联的事件来标识未在文档中明确地找到但仍然描述的与文档相关的一个或多个项。举例来说,关于定位于加利福尼亚·山景城中的软件公司的新闻文章可不包含短语“旧金山湾区”。经扩增搜索和索引系统可被配置成将文章中的字符串标识为公司名,存取关于存储于在线社交网络系统中的公司的信息,并基于那则信息而将新闻报道标识为隐含地包含项“旧金山湾区”。在倒排索引中,项“旧金山湾区”将接着被映射到新闻文章的标识。另一实例是科学论文已通过成员在在线社交网络系统中发布或分享此出版物来进入在线社交网络系统。如果对与此共享的出版物相关联的事件的监测指示此科学论文被在其简档中列出某些专业人技能(例如“核物理学”、“生物信息学”或“统计模型化”)的成员阅读、评论、进一步分享等等,那么此出版物将被标识为隐含地包含表示已最主动地参与所述文章的成员的专业技能的短语。对应于那些技能的内容项将接着在倒排索引中被映射到那篇科学论文的标识。当成员在在线社交网络系统中请求搜索时,在执行搜索请求之前,经扩增搜索和索引系统可将具有由成员键入的搜索项的额外搜索项包含到查询中。这些额外项选自包含于成员的成员简档中的简档项。在一个实施例中,经扩增搜索和索引系统可从技能类别选择一个或多个项,例如成员简档中的表示成员简档中的成员的最突出专业技能的那些短语。经扩增搜索和索引系统还可将表示成员的地理位置的短语选作额外搜索项。举例来说,经扩增搜索和索引系统可从成员简档选择与地理位置类别相关联的短语。替代地或另外,经扩增搜索和索引系统可被配置成从存在于成员简档中的各种信息,例如从指示成员的当前就业地点的信息导出地理位置。在另一实施例中,经扩增搜索和索引系统可利用成员的过去活动以导出额外搜索项。举例来说,在职位搜索的情境下,可从表示公司的实体导出额外搜索项,成员在之前或基于由成员搜索的公司的特性而搜索所述实体。所得查询包含额外项,并可使用各种算子来得以处理,例如经加权“或”运算(表示为wor)。额外项中的每一个由经扩增搜索和索引系统例如基于其相应类别而分配加权。因此,举例来说,来自技能类别的项(表示成员的专业技能的短语)可被分配第一加权值,而来自位置类别的项(表示与成员相关的地理位置的短语)可被分配第二加权值。被分配给项的加权指示语料库中的其它项当中的项的相对重要性。下文展示了包含由用户键入的两个搜索项(“软件工程师”和“java”)和由经扩增搜索和索引系统选择的两个额外搜索项(“旧金山湾区”、“机器学习”、linux、资深和hadoop)的实例查询。(“软件工程师”与“java”)与(wor(threshold_value(“旧金山湾区”、[w1]“机器学习”[w2]、linux[w3]、资深[w4]、hadoop[w5])),其中加权w1、…、w5的总和必须大于threshold_value。响应于在上文展示的查询,搜索引擎检索被映射到倒排索引中的项“软件工程师”和“java”的文档,并接着基于那些文档中的由经扩增搜索和索引系统选择的项中的任一个的存在而进一步过滤检索到的结果。可在图1中所说明的网络环境100的情境下实施实例搜索系统。如图1中所展示,网络环境100可包含客户端系统110和120以及服务器系统140。客户端系统120可以是行动装置,例如移动电话或平板电脑。在一个实例实施例中,服务器系统140可代管在线社交网络系统142。如上文所解释,在线社交网络的每个成员由成员简档表示,成员简档含有关于成员的个人和专业信息,并可与成员与指示在线社交网络系统142中的其它成员简档的连接的社交链接相关联。成员简档和相关信息可作为成员简档152存储于数据库150中。数据库150还存储含量项作为出版物154。如上文所解释,出版物(还被称作文档)应被理解为存储于在线社交网络系统142中或可由在线社交网络系统存取的任何内容项,例如新闻文章、科技论文、公开招聘、表示公司的文档等等。客户端系统110和120可能够利用例如客户端系统110上执行的浏览器应用程序112或客户端系统120上执行的移动应用程序来通过通信网络130存取服务器系统140。通信网络130可以是公网(例如因特网、移动通信网络、或能够传达数字数据的任何其它网络)。如图1中所展示,服务器系统140还代管搜索系统144。使用上文所描述的方法,搜索系统144可被配置成通过利用可在由在线社交网络系统142维持的成员简档中找到的各种特征来优化在线社交网络系统142中执行的搜索过程。在一个实施例中,搜索系统144以来自由在线社交网络系统142维持的成员简档的特征扩增用于搜索优化的倒排搜索索引。当在线社交网络系统142的用户请求搜索时,搜索系统144检查表示在线社交网络系统中的用户的成员简档并从成员简档导出待连同用户供应的搜索项包含到搜索请求中的额外项。通过将“与”算子应用于用户供应的项并将经加权“或”算子应用于从所述成员简档导出的所述额外项来处理所得查询。使通过执行所述查询来获得的搜索结果对进行请求的用户可用。在图2中说明了还可被称作经扩增搜索和索引系统的实例搜索系统144。图2是用以优化图1的在线社交网络系统142中的搜索过程的系统200的框图。如图2中所展示,系统200包含搜索请求检测器210、额外搜索项产生器220、搜索结果产生器230和呈现模块240。搜索请求检测器210被配置成检测来自图1的在线社交网络系统142的成员的搜索请求。搜索请求包含一个或多个用户供应的搜索项。额外搜索项产生器220被配置成从表示在线社交网络系统142中的成员的成员简档导出一个或多个额外搜索项。如上文所描述,被选择来包含到用户的搜索请求中的额外搜索项表示成员的特性,例如专业技能、地理位置、专业资历等等。搜索结果产生器230被配置成基于一个或多个用户供应的项和一个或多个额外项而处理搜索请求,同时利用倒排搜索索引。搜索结果产生器230通过将经加权“或”算子应用于一个或多个额外搜索项来处理搜索请求,同时使用被分配给额外搜索项的相应加权,如上文所描述。呈现模块240被配置成致使在请求用户的显示装置上显示由搜索结果产生器230产生的一个或多个搜索结果。如上文提到,搜索结果可包含公开招聘、新闻文章、科技论文等等。图2中还展示了搜索索引产生器250。搜索索引产生器250被配置成将来自由在线社交网络系统142维持的成员简档的一个或多个特征作为内容项添加到倒排搜索索引中。如上文所解释,来自倒排搜索索引的每个内容项被映射到存储于在线社交网络系统中的明确地或隐含地包含所述内容项的那些文档的标识。可参考图3描述由系统200执行的一些操作。图3是用以优化图1的在线社交网络系统142中的搜索过程的方法300的流程图。可通过可包括硬件(例如专用逻辑、可编程逻辑、微码等等)、软件(例如在通用计算机系统或专用机器上运行)或两者的组合的处理逻辑来执行方法300。在一个实例实施例中,处理逻辑驻留于图1的服务器系统140处,且具体地说,驻留于图2中展示的系统200处。如图3中所展示,方法300在操作310处开始,此时图2的搜索请求检测器210检测来自图1的在线社交网络系统142的成员的搜索请求。搜索请求包含一个或多个用户供应的搜索项。在操作320处,图2的额外搜索项产生器220从表示在线社交网络系统142中的成员的成员简档导出一个或多个额外搜索项。如上文所描述,被选择来包含到用户的搜索请求中的额外搜索项表示成员的特性,例如专业技能、地理位置、专业资历等等。在操作330处,搜索结果产生器230利用倒排搜索索引基于一个或多个用户供应的项和一个或多个额外项而处理搜索请求,以产生搜索结果。在操作340处,图2的呈现模块240致使在请求用户的显示装置上显示由搜索结果产生器230产生的一个或多个搜索结果。如上文提到,搜索结果可包含公开招聘、新闻文章、科技论文等等。本文中所描述的实例方法的各种操作可至少部分地由暂时的被配置(例如通过软件)或永久地被配置成执行相关操作的一个或多个处理器执行。无论暂时性地配置还是永久性地配置,此类处理器可以构成操作用于执行一个或多个操作或功能的处理器实施的模块。在一些实例实施例中,本文提及的模块可包括处理器实施的模块。类似地,本文所描述的方法可以至少部分是处理器实施的。举例来说,方法的操作中的至少一些可以由一个或多个处理器或处理器实施的模块执行。操作的特定性能可分布于一个或多个处理器当中,不仅驻留在单一机器内,而且还跨越多个机器部署。在一些实例实施例中,一个或多个处理器可以位于单个位置中(例如位于家庭环境、办公室环境或服务器群内),而在其它实施例中,处理器可以跨越多个位置分布。图5是呈计算机系统500形式的实例机器的图形表示,可在所述机器内执行用于致使所述机器以执行本文中论述的方法中的任何一个或多个的一组指令。在替代性实施例中,机器充当独立装置或可连接(例如联网)到其它机器。在联网部署中,机器可操作于服务器客户端网络环境中的服务器机器或客户端机器的负载中,或操作为点对点(或分布式)网络环境中的对等机器。机器可以是个人计算机(personalcomputer,pc)、平板pc、机顶盒(set-topbox,stb)、个人数字助理(personaldigitalassistant,pda)、蜂巢式电话、网络器具、网络路由器、开关或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的一组指令的任何机器。另外,虽然,仅说明单个机器,但是还应采用术语“机器”以包含机器的任何集合,机器的集合个别地或共同地执行一组(或多组)以执行本文中论述的方法中的任何一个或多个。实例计算机系统500包含通过总线505彼此通信的处理器502(例如中央处理单元(centralprocessingunit,cpu)、图形处理单元(graphicsprocessingunit,gpu)或这两者)、主存储器504与静态存储器506。计算机系统500可进一步包含视频显示单元510(例如液晶显示器(liquidcrystaldisplay,lcd)或阴极射线管(cathoderaytube,crt))。计算机系统500还亦包含字母数字输入装置512(例如键盘)、用户界面(userinterface,ui)导航装置514(例如光标控制装置)、磁盘驱动单元516、信号产生装置518(例如扬声器)和网络接口装置520。磁盘驱动单元516包含机器可读媒体522,其上存储有体现或由本文中所描述的方法或功能中的任何一个或多个利用的一个或多个指令集和数据结构(例如软件524)。软件524还可在由计算机系统500执行期间完全或至少部分地驻留于主存储器504内和/或处理器502内,主存储器504和处理器502还构成机器可读媒体。可通过利用数个众所周知的传送协议(例如超文本传送协议(hypertexttransferprotocol,http))中的任一个的网络接口装置520通过网络526传输或接收进一步软件524。虽然机器可读媒体522在实例实施例中展示为单个媒体,但是术语“机器可读媒体”应被认为包含存储一个或多个指令集的单个媒体或多个媒体(例如集中式或分布式数据库和/或相关联高速缓存和服务器)。术语“机器可读媒体”应还被视为包含能够存储并对一组指令进行编码或能够存储并对由此组指令利用或与此组指令相关联的数据结构进行编码的任何媒体,所述组指令用于由机器实行并致使所述机器执行本发明的实施例的方法中的任何一个或多个。术语“机器可读媒体”因此应被视为包含但不限于固态存储器、光学和磁性媒体。此类媒体还可包含但不限于硬盘、软盘、快闪存储卡、数字视频光盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)等等。可在包括安装在计算机上的软件的操作环境中、以硬件或以软件与硬件的组合实施本文中所描述的实施例。仅为方便起见,且在不希望在实际上公开多于一个的情况下自愿地将本申请的范围限制于任何单个发明或发明概念的情况下,本发明主题的此类实施例在本文中可单独地或共同地由术语“本发明”提及。模块、组件与逻辑本文中将某些实施例描述为包括逻辑或数个组件、模块或机构。模块可构成软件模块(例如(1)非暂时性机器可读媒体上或(2)发射信号中体现)的代码或硬件实施的模块。硬件实施的模块是能够执行特定操作并可以某一方式配置或布置的有形单元。在实例实施例中,一个或多个计算机系统(例如独立客户端或服务器计算机系统)或一个或多个处理器可通过软件(例如应用程序或应用程序部分)配置成操作以执行如本文中所描述的某些操作的硬件实施的模块。在各种实施例中,可以机械方式或电子方式实施硬件实施的模块。举例来说,硬件实施的模块可包括永久地被配置成执行某些操作的(例如配置成专用处理器,例如现场可编程门阵列(fieldprogrammablegatearray,fpga)或专用集成电路(application-specificintegratedcircuit,asic))的专用电路系统或逻辑。硬件实施的模块还可包括通过软件暂时性地配置以执行某些操作的可编程逻辑或电路(例如如涵盖在通用处理器或其它可编程处理器内)。应了解,可以由成本和时间考虑因素驱动以机械方式、在专用且永久性地配置的电路中或在暂时性地配置的电路(例如由软件配置)中实施硬件实施的模块的决策。相应地,术语“硬件实施的模块”应被理解成涵盖有形实体,即以物理方式构建、永久地配置成(例如硬连线的)或暂时或暂时地配置成(例如被编程)以某一操作和/或执行本文中所描述的某些操作的部分或全部的实体。考虑其中硬件实施的模块进行暂时性配置(例如编程)的实施例,无需在任一时刻处配置或实例化硬件实施的模块中的每一个。举例来说,当硬件实施的模块包括使用软件配置的通用处理器时,通用处理器可在不同时间配置为相应不同硬件实施的模块。举例来说,软件可因此将处理器配置成在一个时间实例处构成特定硬件实施的模块且在时间的不同实例处构成不同硬件实施的模块。硬件实施的模块可项其它硬件实施的模块提供信息并从其接收信息。因此,可将所描述硬件实施的模块视为以通信方式耦合。当多个此类硬件实施的模块同时存在时,可通过信号发射(例如通过适当的电路和总线)实现连接硬件实施的模块的通信。在多个硬件实施的模块在不同时间配置或实例化的实施例中,举例来说,可通过在所述多个硬件实施的模块可存取的存储器结构中存储并检索信息来实现此类硬件实施的模块之间的通信。举例来说,一个硬件实施的模块可以执行一个操作且将所述操作的输出存储于存储器装置中,所述硬件模块以通信方式耦合到所述存储器装置。接着,另一硬件实施的模块可以随后存取存储器装置以检索和处理所存储输出。硬件实施的模块还可以通过输入或输出装置启动通信,并且可以对资源(例如信息的集合)进行操作。本文中所描述的实例方法的各种操作可至少部分地由暂时的被配置(例如通过软件)或永久地被配置成执行相关操作的一个或多个处理器执行。无论暂时性地配置还是永久性地配置,此类处理器可以构成操作用于执行一个或多个操作或功能的处理器实施的模块。在一些实例实施例中,本文提及的模块可包括处理器实施的模块。类似地,本文所描述的方法可以至少部分是处理器实施的。举例来说,方法的操作中的至少一些可以由一个或多个处理器或处理器实施的模块执行。操作的特定性能可分布于一个或多个处理器当中,不仅驻留在单一机器内,而且还跨越多个机器部署。在一些实例实施例中,一个或多个处理器可以位于单个位置中(例如位于家庭环境、办公室环境或服务器群内),而在其它实施例中,处理器可以跨越多个位置分布。一个或多个处理器还可操作以支持“云计算”环境或如“软件即服务”(softwareasaservice,saas)中的相关操作的性能。举例来说,所述操作中的至少一些可由一群计算机(作为包含处理器的机器的实例)执行,可通过网络(例如因特网)和通过一个或多个适当的接口(例如应用程序接口(applicationprograminterface,api))存取这些操作。因此,已描述了一种用以优化在线社交网络系统中的搜索过程的方法和系统。虽然已参考具体实例实施例描述了实施例,但应显而易见的是,可在不脱离本发明主题的实施例的更广范围下对这些实施例进行各种修改和变更。因此,说明书和图式应在说明性意义上而非限制性意义上看待。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1