用于匹配实体的系统和方法

文档序号:6480020阅读:282来源:国知局
专利名称:用于匹配实体的系统和方法
技术领域
本发明涉及数据获取和分析的领域,且具体地,涉及用于确定匹配系统接收的实体是否与之前接收的实体相匹配的方法和系统。
背景技术
在过去5-10年中,在全球的人群中,“搜索”已变成了数字世界中的现象。在典型的搜索情形中,使用短的搜索查询来找到大的、或至少较大的文档。典型的示例是互联网搜索引擎或安装在图书馆计算机上的用于搜索图书馆中存储的论文或书籍的搜索引擎。如上所述的传统的搜索场景与典型的匹配场景不同。在匹配场景中,两个或更多用户向系统中输入数据,以便找出该数据是否与其他用户输入的数据匹配。即,与搜索场景相反地,向系统中输入信息的所有用户都对发现匹配信息感兴趣。在搜索场景中,仅输入搜索查询(一般是以一个或若干关键字的形式)的用户才对匹配结果感兴趣。从技术角度来看,匹配系统与搜索引擎的不同之处至少在于匹配系统必须对输入的“查询”编写索引,因为查询还有可能与之前或后续接收的查询相匹配。为了区分“匹配查询”和常规搜索查询, 在本文档的全文中将“匹配查询”中发送至匹配系统的数据称作“实体(entity) ”。匹配系统可以用在很多不同类型的匹配服务中。这种服务的示例如在线求职/招募服务、电子商务服务和约会服务。在现有的匹配系统中,可以将匹配操作看成分为至少两个子操作插入操作和搜索操作。首先,当新用户向系统发送实体时,执行将实体插入系统的数据结构中的插入操作。该操作涉及通过将实体编写进索引使得该实体对于其他用户而言可搜索的步骤,在该步骤中,将实体与索引点相关联以协助对实体的快速而准确的检索。然后,在稍后的阶段, 执行系统搜索匹配实体的搜索操作。由在系统中发生的某个事件来发起该搜索操作。因此可以将这种事件看成“匹配触发事件”。在现有的匹配系统中,匹配触发事件可以是例如当浏览求职网站时,用户按动在他/她的web浏览器上向用户显示的“搜索匹配工作按钮”的发生,或在具有求职应用的服务器中运行的定时器的到期。为了查看在上一次匹配触发事件发生之后是否已经向系统添加了新的匹配,用户必须等待下一个匹配触发事件的发生, 即在该示例情况下,再一次等待定时器到期或按压搜索按钮。匹配系统如何以及何时执行针对潜在匹配的搜索对于感受到的匹配服务的质量而言是关键的。同样地,在匹配触发事件发生间隔中,存在匹配系统处于“未匹配状态”的风险,意味着系统可能未意识到在系统中存储的不同实体彼此匹配。当然,这是不期望出现的匹配系统的状态,因为只要系统未意识到匹配实体的存在,就不能向用户通知匹配的实体。该事实经常降低了用户感受到的所使用的匹配系统的服务质量。匹配系统如何以及何时执行针对潜在匹配的搜索对于匹配系统所需的计算能力来说也是关键的。在现有系统中,在匹配操作中,必须遍历索引至少两次;一次是对实体编写索引时的插入操作期间,以及一次是在寻找匹配实体中遍历索引时的搜索操作期间。由于典型的匹配系统的索引包括大量数据,该过程通常是缓慢且消耗计算能力的。
因此,与根据现有技术的匹配系统相关联的一个问题是如何增加用户感受到的所使用的系统的匹配服务的服务质量。另一个问题是如何减少匹配系统中需要的计算能力。 又一个问题是如何减少在系统中找到所有潜在匹配所需的时间。

发明内容
本发明的目标是解决或至少减轻匹配系统的上述问题中的至少一个。该目标由一种能够确定从第一用户的客户端设备接收的第一实体是否与在索引中已被编写索引的多个实体中的至少一个相匹配的匹配系统来实现,在该索引中,每一个实体与一个或多个索引点相关联。所述匹配系统包括应用服务器(比如Java EE应用服务器),其适于与匹配引擎和客户端设备通信。所述匹配引擎适于通过将所述第一实体与所述索引中的一个或多个索引点相关联对所述第一实体编写索引,且适于通过搜索与所述第一实体相关联的至少一个所述索引点相关联的实体,在所述索引中已被编写索引的多个实体中搜索匹配所述第一实体的实体。当本文中被称作匹配触发事件的事件发生时,所述匹配系统适于发起针对与所述第一实体匹配的实体的搜索。所述匹配系统适于将接收到所述第一实体解释为这种匹配触发事件。从而,当接收到所述第一实体时,所述匹配系统适于发起所述搜索。如在背景技术部分所提到的,在本文中术语“实体”用于区分在“匹配查询”中向匹配系统发送的数据与在搜索查询中发送至常规搜索引擎的数据。在本文中实体匹配另一个实体意味着这些实体具有至少一个共同的索引点,即,在所述索引中存在与两个实体都关联的至少一个索引。索引点可以是与在与索引点相关联的实体中找到的符号或符号序列相对应的任何符号(比如字符)或符号的序列(比如单词),或者可以是反映与索引点相关联的实体的一个或若干属性的符号或符号序列。实体可以是例如文本文件、图像文件、音频文件或具有可“翻译”为单词或其他符号序列的属性的任何其他类型的数据,其中,该其他符号序列可以作为描述与索引点相关联的实体的特征的索引点。匹配系统使用的索引可以是本领域中已知的任何类型的搜索引擎/匹配引擎索引。使用什么类型索引以及如何构造和存储索引数据可以变化,以满足不同的设计因素,例如适合使用系统的匹配服务以及在该服务中使用的实体类型。通过将接收到新的实体解释为匹配触发事件,并从而当接收到新的实体时直接执行针对匹配实体的搜索,将匹配系统连续地保持在“匹配状态”下,意味着系统一直意识到在系统中存储的所有实体之间的所有匹配。该特征具有如下效果当系统接收到这种匹配实体时,允许匹配系统直接地自动向用户通知与他/她的实体匹配的新的实体。与在背景技术部分描述的根据现有技术的匹配系统相比较,在以下方面这是有利的为了在执行前一个搜索操作之后发现是否存在与已提交给匹配系统的他/她的实体相匹配的新的实体, 用户不需要像在实现了时间触发搜索操作的匹配系统的情况中一样等待下一个时间确定的搜索操作发生,或也不需要像在实现了点击触发的搜索操作的匹配系统的情况中一样重新按动“搜索匹配按钮”。从系统的角度来看,该特征的有利之处在于其减少了匹配系统所需的计算能力,因为除非系统从执行上一次搜索操作开始已接收到新的实体,否则不需要执行搜索。因此,所建议的原理确保了不对已搜索过的实体执行冗余搜索。在上述根据现有技术的匹配系统中,尽管在执行过上一次搜索操作之后尚未向系统提交新的实体,还是可能执行搜索操作,且从而执行消耗时间和计算能力的索引遍历。优选地,在一个单一操作中执行针对与第一实体匹配的实体的搜索以及执行第一实体的索引编写(indexation),使得匹配系统对于每一个匹配操作仅必须遍历索引一次。 这可以通过如下调整匹配系统来实现针对第一实体要关联的索引中的每一个索引点,将第一实体与该索引点相关联,且对标识出与该索引点相关联的其他实体的信息进行检索。 一般通过将唯一标识索引中该索引点中的实体的实体标识参数进行存储来实现实体与索引点的关联。因此,在该情况下,当存储要与第一实体相关联的索引点中的第一实体的实体标识参数时,可以不付出任何额外成本,在同时检索其中已存储的实体标识参数。由于匹配系统中的索引一般在复杂的数据结构中存储大量数据,同时执行索引编写和在对索引的一个单一遍历中进行搜索的特征减少了匹配系统所需的计算能力和/或执行每一个匹配操作所需的时间,即对新实体编写索引且搜索与该新实体匹配的实体所需的时间。将在下文中的详细描述和所附权利要求中描述根据本发明的匹配系统的更高级特征。本发明还涉及如权利要求9所指定的一种方法,其确定从第一用户的客户端设备接收的第一实体是否与在索引中的已被编写索引的多个实体中的至少一个相匹配,在该索引中,每一个实体与一个或多个索引点相关联,且本发明还涉及如权利要求17所指定的一种用于引起服务器节点执行该方法的计算机程序。此外,本发明涉及一种包括存储介质的计算机程序产品,在该存储介质上存储了这种计算机程序产品。


当结合附图阅读时,通过对本发明的示例实施例的以下详细描述,本发明的目标、 优点和效果以及特征将变得更容易理解,其中图1示出了用于确定系统接收的实体是否与之前接收的实体匹配的示例匹配系统。图2示出了根据现有技术的典型匹配系统如何执行匹配操作。图3示出了由图1中的匹配系统所执行的示例匹配操作。图4示出了一个匹配场景,该匹配场景说明了由图1中的匹配系统所实现的优点之一。图5示意性地示出了可以如何执行图3所示的匹配操作的更详细的示例。图6示出了一种信令方案,该信令方案示出了在图5所示的匹配操作期间,图1中的匹配系统的不同部件可以被如何配置以彼此通信。图7示出了可以用于图1中的匹配系统的索引的示例索引数据结构。图8示出了一个流程图,该流程图说明了当使用将数据如图7所示结构化的索引时,图1中的匹配系统可以如何执行结合的搜索和编写索引操作。图9示出了一个信令方案,该信令方案示出了当使用将数据如图7所示结构化的索引时,匹配系统可以如何执行结合的搜索和编写索引操作。
具体实施例方式尽管本发明覆盖了各种修改和备选构造,在附图中示出了本发明的实施例,且将在下文中详细描述他们。然而应当理解,这些特定描述和附图不意在将本发明限制为所公开的特定形式。相反地,要求保护的本发明的范围预期包括落入如所附权利要求中表述的本发明的范围中的本发明的所有修改和备选构造。图1示出了根据本发明的示例匹配系统1。匹配系统1适于确定从不同用户13A、 13B的客户端设备15A、15B接收到的实体17A、17B是否彼此匹配。匹配系统1包括web服务器3、应用服务器5和数据库服务器11,为了如附图中双向箭头所示的交换数据,这些服务器通信性地相连。用户13A、13B —般经由他们的客户端设备15A、15B中的web浏览器在互联网上访问由匹配系统1提供的匹配服务。Web服务器3负责处理与客户端设备15A、15B的通信, 并负责呈现友好且实用的用户界面。一般地,这是通过构建并向客户端设备15A、15B传输 XHTML(可扩展超文本标记语言)/HTML网页来实现的。应用服务器5是负责执行用软件实现的匹配服务的系统的一部分。应用服务器5 包括匹配功能(下文中称作匹配引擎7),其包括用于确定从一个或若干客户端设备13A、 13B接收的实体17A、17B是否彼此匹配所需的全部功能。此处,将匹配引擎7实现为在应用服务器5中的计算机可读介质8 (比如硬盘驱动器、ROM (只读存储器)、闪存或EEPROM (电子可擦除可编程只读存储器))上存储的计算机程序。当计算机程序6在应用服务器5中的处理器上运行时,其引起应用服务器5执行根据本发明的匹配操作,下面更详细地描述该匹配操作。应用服务器5可以是例如Java EE(企业版)应用服务器。数据库服务器11包括数据库12,比如SQL (结构化查询语言)数据库,其存储匹配系统1接收的所有实体。当在数据库12中存储新实体时,向其分配唯一标识该实体的实体标识参数19A、19B。因此数据库12可以作为实体存储器,且实体标识参数19A、19B是用于在实体存储器中寻找实体的关键(key)。下文中将实体标识参数19A、19B称作实体ID。应用服务器5还包括匹配引擎索引23,其中,将所有实体17A、17B编写索引以协助对匹配实体的搜索。索引数据的结构化和存储的方式可以变化,以满足不同的系统设计因素。例如,可以将索引数据结构化为有序树数据结构(有时称作“trie”)、二叉树数据结构、散列表或分布式散列表。在该示例实施例中,实体19A、19B是文本字符串,且将索引23 视为存储包含每一个单词在内的实体17A、17B的实体ID 19A、19B的列表。在一般的匹配引擎索引中,每一个实体与一个或多个索引点相关联。如果一个实体与另一个实体具有至少一个公共的索引点,即如果它们都与至少一个公共索引点相关联,则可以将称(或至少某种程度上称)这个实体与另一个实体匹配。在该示例索引中,每一个单词21对应于索引 23的一个索引点。尽管在该实施例中在应用服务器5的存储装置8中存储索引23,但是索引还可以就存储在匹配系统1的另一个节点中,比如分离的“索引数据库服务器”(未示出) 或数据库服务器11,或在应用服务器5的高速缓存存储器中。不应当将使用什么类型的索引或如何存储索引解释为对根据本发明的匹配系统1的限制特征。应当理解,所示匹配系统架构仅是示例性的,且可以用很多其他方式来实现匹配系统1。例如,可以在应用服务器5中包括web服务器3和/或数据库服务器11,使得整个匹配系统1驻留在一个单一服务器节点中,且客户端设备13A、i;3B可以通过例如Java ME (微版本)应用直接与应用服务器5通信,而不是经由web服务器3与应用服务器5通信。图2示出了根据现有技术的典型匹配系统执行匹配操作的方式。
在第一步骤S201中,用户从他/她的客户端设备向匹配系统发送实体,下文中称作新实体。当接收到新实体时,在步骤S202中,匹配系统发起将新实体插入到匹配系统的数据结构中的操作。在步骤S203中执行插入操作,该插入操作涉及为新实体编写索引且一般还涉及存储新实体。通过遍历匹配系统的索引并将新实体与一个或多个索引点相关联以让其对于其他用户可搜索,来执行编写索引。在步骤S204中,向匹配系统通知向数据结构中插入新实体成功。在稍后的时间点上,触发匹配系统搜索与新实体匹配的实体的事件发生。如在背景技术部分中提到的,可以将发起针对匹配实体的搜索的这种事件称作匹配触发事件。在现有技术的匹配系统中,可以在预定时间点上发起搜索,在该情况下,匹配触发事件一般对应于在提供匹配系统的服务器上运行的定时器的到期。由Tt(即“由定时器触发的”)代表的圆指示了这种匹配触发事件的发生。在根据现有技术的其他匹配系统中,可以通过点击在他/她的web浏览器中显示给用户的“搜索匹配按钮”,由发送实体的用户来发起该搜索。由Tc(即“由点击触发的”)代表的圆指示了这种点击的发生,以及因此另一种类型的匹配触发事件的发生。当匹配触发事件Tt、Tc发生时,在步骤S205中,系统发起针对与新实体匹配的实体的搜索。在步骤S206中,在追寻与新实体匹配的实体中,通过再次遍历索引来执行搜索。在步骤S207中,由匹配系统检索匹配实体,或至少检索允许标识出匹配实体的信息,且在步骤S208中,将匹配实体发送至用户的客户端设备。因此,将匹配操作视为包括两个分离的子操作,即在步骤S203中的插入操作以及在步骤S206中的搜索操作。当接收到新实体时,一般直接执行插入操作,同时在稍后阶段由匹配触发事件Ττ、Τ。来发起搜索操作的执行。这意味着向匹配系统发送新实体的用户在发现是否存在可用的匹配实体之前,必须等待匹配触发事件,且匹配系统处于在新实体的插入和匹配触发事件的发生之间的“未匹配状态”,意味着匹配系统未意识到在新实体和在匹配系统中存储的其他实体之间的任何潜在的匹配。图3示出了根据本发明的匹配系统1执行匹配操作的方式示例。此处,在步骤S301中,由匹配系统接收从客户端设备发送的新实体。匹配系统适于将接收到新实体解释为匹配触发事件,且因此当接收到新实体时,直接发起针对匹配实体的搜索。当接收到新实体时直接发起针对匹配实体的搜索不一定意味着匹配系统在接收和搜索之间不采取中间行动,而仅意味着接收触发了匹配系统执行一个操作链,其中搜索操作是该操作链中的一个操作。因此,为了让匹配系统发起搜索,除了接收到新实体之外的其他事件不是必须要发生。此处将匹配触发事件视为用虚线圆TK(即“通过接收触发的”) 来说明。在该实施例中,在步骤S302,匹配系统发起将在下面更详细描述的结合的插入和搜索操作。因此,在步骤S303中,执行向数据结构中插入新实体以及搜索与新实体匹配的实体。在步骤S304中,由匹配系统来检索匹配实体,且在步骤S305中,向用户的客户端设备发送匹配实体,该用户是向匹配系统上载新实体的用户。通过当接收到新实体时直接执行搜索,将匹配系统连续地保持在匹配状态下。图4示出了一个场景,该场景说明了由适于当接收到新实体时发起针对匹配实体的搜索的匹配系统所实现的优点之一。此处,在第一步骤S401中,匹配系统从第一用户的客户端设备接收第一实体。在步骤S402中,匹配系统通过对第一实体编写索引以及一般还存储第一实体,向匹配系统的数据结构中插入第一实体;并且搜索匹配实体。如与图2所示的场景一样,在一个公共操作中执行插入和搜索。在步骤S403中,匹配系统向第一用户通知搜索结果,在该示例场景中,将该搜索结果视为否定的。现在,如果匹配系统是根据现有技术的匹配系统,则尽管还没有向系统提交新的实体,也已执行了冗余搜索,如附图中说明搜索操作的被打叉的箭头所示。然而,使用本发明提出的匹配操作,将不重复搜索,直到匹配系统接收到新实体,将其视为在步骤S404中发生,在步骤S404中,从第二用户的客户端设备向匹配系统发送第二实体。接收到第二实体触发了在步骤S405中执行的新的搜索。 在该示例场景中,假定第一实体与第二实体匹配,且作为结果,在步骤S406A和S406B中,匹配系统通过向第一用户发送第二实体以及向第二用户发送第一实体,向第一和第二用户都通知已经找到针对他们相应实体的匹配。因此,适于实现所建议的匹配操作的匹配系统可以节约计算能力,因为不执行冗余的搜索,且使用匹配系统的服务的用户不需要担心不被通知存在的匹配,因为只要与他们的实体相匹配的新实体被提交给匹配系统,则可以自动地向他们发出通知。当然,在步骤S406A和S406B中,匹配系统不一定向相应用户(即相应用户的客户端设备)发送匹配实体本身。匹配系统可以适于向相应用户发送标识匹配实体的任何信息。例如,如果匹配系统用于在线约会服务(在该情况下,实体可以对应于例如使用该服务的人员的用户简档或用户建档的一部分),在步骤S406A和S406B中,发送至第一用户和第二用户的客户端设备的信息可以是在约会服务上提供的指向匹配用户的网站上的“个人主页”的URL(统一资源定位符)。或者,如果例如当在步骤S405中发现匹配时,第一用户不再登陆在约会服务上,匹配系统可以适于例如向第二用户发送第一实体,同时在SMS消息或电子邮件中向第一用户发送指向第二用户的个人主页的URL,以及发送找到新匹配且可以在所附URL上查看该新匹配的信息。根据另一个实施例,当在步骤S405中检测到匹配时, 匹配系统适于不向第一和第二用户的用户设备发送任何东西。取而代之地,匹配系统适于在数据库或高速缓存存储器中存储该匹配,当用户下一次登陆服务时,该匹配可被检索并发送至用户,在该情况下,可以在用户的个人主页、“欢迎页面”等等上显示该匹配。尽管已分别在步骤S303和步骤S402和S405中将插入和搜索结合单一操作中执行,在图3和4所示的示例匹配操作中,应当理解可以通过在两个分离的子操作中执行插入和搜索,来执行所提出的匹配操作,在该匹配操作中,当接收到新实体时发起搜索,这与图2 所示的根据现有技术的匹配操作是一样进行的(步骤S203和S206)。只要搜索操作由接收到新实体来触发,且不由任何其他事件触发,则将匹配系统连续地保持在匹配状态,且受益于上述优点。然而,在一个单一操作中执行插入和搜索的有利之处在于其还减少了匹配系统所需的计算能力和/或减少了执行匹配操作所需的时间。现在将结合图5来描述使用结合的插入和搜索的匹配操作。图5示意性地示出了根据本发明的匹配操作的更详细的示例。当描述图5时,同时将参考图1中的匹配系统1。步骤S501-接收并存储新实体由匹配系统1分别从客户端设备15A和15B之一接收新实体17A。在本示例中,实体17A是文本字符串“Blue car”,且因此应当与包括文本字符串“Blue car”在内的其他实体匹配。匹配系统1在数据库12中存储该新实体17A,因此向其分配具有整数形式“64” 的实体ID 19A。
步骤S502-预处理实体在对实体编写索引之前,可能需要对文本字符串进行预处理。在该示例中,预处理是非常简单的操作。将文本字符串末尾的特殊字符“.”移除,将文本字符串表达 (tokenized)为列表22或形成文本字符串的单词序列,且将所有字符变为大写字母。这是由匹配引擎7的一部分实现的,可以将其称作预处理器。尽管在本示例中是简单的操作,预处理可以复杂得多,且涉及诸如同义词的滋生(stemming)和替换。其还可以涉及移除携带非常少信息(从匹配的角度来说)的普通单词的步骤,如单词“&”、“&11”、“让^、“&11(1”等寸。步骤S503-对实体编写索引且搜索匹配实体现在对新实体17A编写索引。这是通过将实体与索引23中的一个或若干索引点 21相关联来执行的。此处将索引23象征性地示出为包括六个“篮”,每一个篮属于索引23 的索引点21,在本示例中,该索引点对应于在实体存储器12中存储的实体17B中出现的单词。每一个篮中的数是包括该篮所属的单词在内的实体17B的实体ID 19B。通过将新实体 17A与对应于列表22中的单词“blue”和“car”的索引点相关联对新实体17A编制索引。 这是通过将新实体17A的实体ID 19A插入这些篮来说明的。因此在这些篮中存储的其他实体ID是可以被称为与新实体相匹配的实体的实体ID。正常地,当已将新实体与其要关联的所有索引点相关联时,根据现有技术的匹配系统一般确认插入新实体成功,然后返回“空闲模式”,直到匹配触发事件发生。当匹配触发事件发生且要执行对与新实体匹配的实体的搜索时,则根据现有技术的这种匹配系统必须再次遍历索引23,以(象征性地)找到新实体的实体ID被存储在哪些篮中,且检索在相同篮中存储的所有其他实体ID。然而根据本发明的方面,在将新实体19A的实体ID 17A插入相应“篮”中的同时,检索到匹配实体的实体ID。由于必须遍历索引23以找到应当将新实体19A的实体ID 17A插入到哪些篮中,则未付出额外成本就实现了对匹配实体的实体ID 的检索。总之,所提出的原理让对新实体17A的索引编写还导致了对匹配实体的检索,或者换言之,其允许在对索引23的一次单一遍历中同时执行对实体的索引编写和对与该实体匹配的实体的检索。当然,将实体与索引点相关联不是通过字面意思上将其实体ID放入 “篮”中来执行的。如本领域技术人员众所周知的,可以用很多不同方式来设计索引,且将实体与不同索引点相关联的方式取决于索引的类型。由匹配引擎7的可以被称作搜索引擎的部分来执行上述索引编写和搜索操作。步骤S504-对匹配项进行评分在步骤S503中执行的结合的索引编写和搜索操作的结果是标识出匹配实体的实体ID的列表25。可以认为该列表25表示新实体17A的原始匹配结果。在一些情形中,该列表可能是非常粗放的,且在可以使用匹配结果之前,需要在评分过程中对列表25进行求精。评分是让匹配系统1从完整的结果集合25中挑选出重要部分的方式。通常将最不相关的匹配移除,且按相关性来排列剩下的匹配。实现评分的最基本方式是统计匹配实体17A与每一个匹配实体共同的索引点21 的数目。在该示例情况下,具有实体ID “16”的实体具有与新实体17A共同的两个索引点, 因为“16”在列表25中出现了两次,同时具有实体ID “32”的实体和新实体17A仅具有一个共同的索引点21。因此,匹配系统1可以适于将具有实体ID “16”的实体比具有实体 ID “32”的实体更高的评分。实现评分的另一种简单而普通的方式是通过使用所谓的逆文档频率方法。该方法基本上将不常用的单词比常用单词给予更高的评分。结果是认为具有共同的稀少单词的两个实体比具有共同的经常出现的单词的两个实体是更好的匹配。这是用于在常规搜索应用中进行评分的普遍方法。为了用逆文档频率方法对两个实体之间的相关性进行评分,假定两个实体之间的共同单词是已知的。知道系统中的单词总数也是前提条件。然后可以用以下公式来计算每一个单词的逆文档频率
f N]= Ioge 1 + —,其中
V Jt JWt是单词的权重,N是系统中实体的总数,且ft是系统中包含该单词的实体的数目。这当然不是对匹配进行评分的最优方式。可以对评分进行很多改进,以让其更加智能。 然而,在一些情况下这是足够好的解决方案。另一个棘手的任务是如何确定什么应当被认为是匹配以及什么不应当认为是匹配。这一般取决于匹配系统的精确要求。本领域中存在很多方式用于对在搜索中找到的匹配进行评分。可以分别地或彼此结合地,和/或与其他已知的评分原理相结合的使用上述两个原理,以获得描述由原始匹配结果列表25中的实体ID所标识的每一个实体与新实体17A的匹配程度的评分。匹配系统1适于基于评分对列表25进行排序,并移除最不相关的匹配。可以由匹配引擎7的被称作匹配评分器的部分来执行上述评分操作。在该示例情况中,评分的结果(求精的匹配结果)是仅包含实体ID “16”的“列表” 27。此时,匹配系统1可以适于向以下两个用户通知已找到针对他们的相应实体的匹配向匹配系统提交新实体17A的用户以及提交了具有实体ID “16”的老实体的用户。匹配系统1还可以适于更新保存并保持匹配系统1存储的所有匹配实体的一些内部或外部记录。因此应当理解,尽管初始时匹配系统1将与新实体17A具有至少一个共同的索引点的任何实体认为是新实体的匹配,在评分过程期间,一般将很多这种“匹配”作为“不匹配”加以抛弃。如上所述,评分过程可能是非常复杂的,且使用一个或若干评分功能从匹配的总(原始)集合中检索相关(求精的)匹配。优选地,选择评分功能为对称的,或至少尽可能对称的,意味着如果认为“老”实体与新实体匹配,则也应当认为新实体与“老”实体匹配。图6示出了信令方案,该信令方案示出了在匹配操作期间,图1中的匹配系统1的不同部件可以被如何配置以彼此通信。当描述信令方案时,同时参考图1中的匹配系统。步骤S601 从客户端设备15A、15B的Web浏览器向匹配系统1的web服务器3发送包含post参数在内的HTTP POST请求,该post参数包含文本字符串。取决于使用匹配系统1的匹配服务的类型,文本字符串可以是例如约会服务的用户简档、电子商务服务的商业广告、招聘/求职服务的CV、或匹配系统1应当匹配的任何其他东西。步骤S602 :web服务器3在方法调用中向匹配系统的应用服务器5转发作为字符串参数的post-参数。步骤S603 应用服务器5向数据库12发送字符串。
步骤S604 数据库12将该字符串存储为实体17A,并产生该实体的实体ID 19A。步骤S605 将实体ID返回给应用服务器5。步骤S606,应用服务器5用实体内容(在本情况中是文本字符串)和实体ID调用匹配引擎7。此处,匹配引擎7包括用于处理内部和外部通信的匹配引擎(iffi)接口 7A。因此该步骤是应用服务器5调用匹配引擎7来发起针对于在步骤S602中接收的新实体相匹配的实体的步骤(在本示例实施例中,在对新实体编写索引期间执行该搜索)。由在步骤 S602中接收到新实体来触发应用服务器5到匹配引擎7的方法调用,意味着在步骤S602中接收到实体触发了要由匹配系统1执行的操作链,在该操作链中的一个操作是针对与新接收到的实体相匹配的实体的搜索。步骤S607 匹配引擎接口 7A用实体内容来调用匹配引擎7的预处理器7B,用于对该内容进行预处理。步骤S608 预处理器处理实体内容。如上所述,预处理可以是复杂的操作。当处理文本实体时,该步骤的一个最重要的部分是将文本分段和表达为单词。步骤S609 预处理器7B返回字符串数组,每一个字符串对应于来自实体内容的单词。因此该字符串/单词的数组对应于图5的列表22。步骤S610 匹配引擎7接口 7A用在前一个步骤中从预处理器7B中接收的单词数组和新实体17A的实体ID来调用搜索引擎7C。步骤S611 搜索引擎7C对单词数据编写索引,且检索所有潜在的匹配实体。步骤S612 搜索引擎7C返回原始匹配结果列表(对应于图5中的列表25),其具有针对在步骤S610中提交给搜索引擎的单词数据中的每一个单词的条目。例如,对于每一个单词,将具有与该单词相匹配的所有实体的实体ID的子列表(对应于图5中由25代表的列表中的“列表” {16}, {16,32})附加到原始匹配结果列表上。步骤S613 匹配引擎7所执行的最后一个步骤是对搜索引擎7C获得的结果进行评分。因此将在前一个步骤中从搜索引擎7C返回的原始匹配结果列表转发给匹配引擎7 的匹配评分器7D。步骤S614 匹配评分器7D针对原始匹配结果列表中的每一个实体计算评分。如果评分过低,则不再将该实体认为是匹配项,且将其从列表中移除。然后匹配评分器一般移除在剩余匹配的列表中出现的任何实体ID重复项,并基于评分对剩余匹配项进行排序。该结果是求精的匹配结果列表,比如图5中由27代表的列表。步骤S615 匹配评分器7D返回求精的匹配结果列表。该列表可以是匹配实体的实体ID的基于评分排序的列表,或其可以是实体ID和评分参数的对(pair)的列表,使得返回每一个匹配实体的评分且可以在后面的过程中使用。步骤S616 匹配引擎7接口 7A向应用服务器5返回求精的匹配结果列表。步骤S617:应用服务器用在求精匹配结果列表中包括的实体ID来调用数据库12。步骤S618 数据库12返回具有在求精匹配结果列表中包括的实体ID的实体的列表,即所有匹配实体的列表。步骤S619 应用服务器5向web服务器3返回所有匹配实体的列表,附加地还返回每一个实体的评分。步骤S620 :web服务器3构建呈现结果的XHTML/HTML文档(即呈现匹配实体和附加的每一个实体的评分)。步骤S621 在HTTP响应中,向在步骤S601中发起HTTP POST请求的客户端设备 13A、13B的web浏览器发送该XHTML/HTML文档。图7象征性地示出了根据本发明的匹配系统1中的匹配引擎索引23中的数据的结构。同样地在本示例情况中,假定要由匹配系统1匹配的实体是文本字符串。此处将索引数据视为具有有序树数据结构,如前所述,有时将结构称为“trie”。因此在本示例情况中,可以将匹配引擎索引23称作是trie或树类型索引23A。形成在任意文本实体中出现的单词的字符序列四形成了在分支根节点31和单词末节点33之间的分支或分支的一部分35。使用计算机科学术语,可以将字符序列四称作构成了关联字符数组(associative char array)。每一个分支根节点31是树结构的根节点(树根节点)的子节点,并对应于唯一的字符或数。为了说明的目的,在附图仅示出了两个分支根节点31 (对应于字符“A”和 “B”)以及假定在系统的实体中出现的一些示例单词。由虚线椭圆来在途中指示所有单词末节点33,且每一个单词末节点是树类型索引23A中的索引点21A,因为每一个索引点/单词末节点21/33与包括由从分支根节点31到单词末节点33的字符序列四形成的单词在内的所有实体相关联。即,尽管树类型索引23A中的索引点21是单一字符节点33,每一个索引点21对应于由在该节点33结束的分支或分支的一部分四形成的单词。具有根据逻辑树结构排序的数据的树类型索引23A相比于完整存储在实体中出现的所有唯一单词的索引的有利之处在于减少了必须存储字符的数目,且因此减少了所需的系统存储器空间。 可以在例如节点(比如匹配系统的应用服务器5)的索引数据库或高速缓存存储器中存储树类型索引23A。一般通过存储树结构的每一个节点以及指向该节点的所有子节点的指针来存储树类型索引23A,或换言之,存储每一个节点,使得其与包括该节点的所有子节点在内的子列表相关联。当然,根据树结构构建索引数据的上述原理还可应用于数和由符号的关联序列所形成的任何其他信息。因此,树结构可以包括例如由数字序列(或使用计算机科学术语,关联整数数组)所形成的分支,其在对应于数中的第一数字的分支根节点和对应于数中的最后一个数字的数末节点之间关联排序。与基于单词的情况类似,包括对应于在这种分支根节点和数末节点之间形成的数的数在内的文本实体将与数末节点相关联,因此该数末节点将是树类型索引23A的索引点。由于符号序列不一定形成单词或数,项序列-末节点33可以用于单词末节点、数末节点、或对应于在实体中找到的符号序列中的最后一个符号的任何其他树类型的索引节点。图8示出了流程图,该流程图说明了当匹配系统1的索引23是树类型索引(比如图7中由23A代表的树类型索引)时,可以如何执行针对新实体(比如图1和5中的实体 17A)的结合的搜索和编写索引操作。同样地,假定实体是文本字符串,且假定新实体17A由匹配引擎7的预处理器7B 进行预处理,使得将文本字符串表达为形成文本的单词序列22。一般由匹配引擎7中被称作搜索引擎7C的部分来执行该流程图中所示的方法步骤。步骤S801 检索文本字符串中的第一单词。步骤S802 将树结构的“当前处理的节点”设置为树根节点。步骤S803 检索单词的下一个字符。
步骤S804 执行对当前节点是否具有子节点的检查。如果当前节点的子节点存在,则方法进行至步骤S807,如果否,则方法进行至步骤S805。步骤S805 创建对应于当前处理字符的子节点。步骤S806 在父节点的子列表中存储子节点。步骤S807 将树结构的“当前处理的节点”设置为该子节点。步骤S808 执行对当前处理的单词是否包括更多字符的检查。如果单词中存在更多的字符,则方法返回步骤S803,如果否,则方法进行至步骤S809。步骤S809 将新实体17A的实体ID 19A插入当前处理的节点,因此该节点是单词末节点33,因为当前处理的字符是当前处理的单词的最后一个字符。将实体ID 19A插入当前处理的节点意味着以下述方式在索引存储器(数据库或高速缓存存储器)中存储新实体 17A的实体ID 19A:将其与当前处理的节点相关联。同时,从索引存储器中检索与该节点相关联的所有其他实体ID (如果有的话)。如果其还未与一个或若干实体相关联,则因此在该阶段,通过将当前处理的节点与新实体17A相关联,当前处理的节点变为索引点21A。步骤S810 执行对文本字符串是否包括除当前处理的单词之外的更多单词的检查。如果文本字符串中存在更多的单词,则方法返回步骤S801,如果否,则方法结束,且可以如结合图6所示的,将在步骤S809中检索到的实体ID(针对文本字符串中的每一个单词) 转发至匹配引擎7的匹配评分器7D。图9示出了信令方案,该信令方案示出了当匹配系统的索引23是树类型索引(比如图7中由23A代表的树类型索引)时,在图6中步骤S611中,由搜索引擎7C所执行的子步骤。同样地,假定新实体是图1和5中的实体17A,因此是文本字符串“blue car. ”。 还假定预处理器7B(参见图6)已移除了特殊字符“.”,并将该文本字符串表达为单词列表 22。步骤901 用新实体17A的实体ID 19A和字符串数组22 ({ ‘blue,,‘car,})来调用由搜索引擎7C执行的索引编写和搜索操作,其中,每一个字符串对应于文本字符串中的单词。针对字符串数组22中的每一个字符串,即在本示例中,针对字符串‘blue’和 ‘car,来执行以下由S902-S913代表的步骤。步骤S902 将字符串/单词表达为字符数组,例如{ ‘b,,‘1,,‘u,,‘e,}。步骤S903 将新创建的字符数组与新实体17A的实体ID 19A —起发送至索引23、 23A。步骤S904-S907:基于字符数组,遍历索引23、23A。创建对应于字符序列的且之前未在树结构中存在的任何节点,并将其如图8中步骤S805-S806所示的加以存储。步骤S908 在对应于字符‘e’的单词末节点33中存储新实体17A的实体ID 19A, 因此该单词末节点33变为新实体17A的索引点21A。同时,检索在该节点33中之前存储的任何实体ID,且因此检索作为与新实体17A相匹配的实体的实体ID。步骤S909-S913 经由树结构的节点向搜索引擎7C递归地返回包括在步骤S908 中检索到的实体ID在内的列表。
步骤S914 将针对新文本实体17A的所有单词的、在步骤S908中检索到的实体ID 的列表结合为对应于图5中的原始匹配结果列表25的聚集列表。因此在该示例情况中,该聚集列表将包含包括单词‘blue’和‘car’的所有实体的实体ID。步骤S915 返回在步骤S914中创建的聚集列表。一般地,如图6所示,搜索引擎 7C现在使用聚集列表作为输入参数来调用匹配评分器7D。本文所述的用于在一个单一操作中执行对新实体编写索引和搜索与新实体匹配的实体的原理还可应用于使用索引23、23A的任何类型的匹配系统中,在索引23、23A中,每一个索引点21、21A可以与多个实体17A、17B相关联。更优选地,每一个索引点21、21A应当与具有与索引点对应的属性的所有实体相关联,使得当新实体与该索引点相关联时,检索具有该属性的所有实体。在上述示例中,实体17A、17B是文本字符串,且索引23、23A的每一个索引点21、 21A对应于在任何文本字符串中出现的单词。因此,在这些示例中,可以将索引点21、21A看成是对应于要匹配的实体的“语义属性”,例如,包括单词‘blue’的属性。然而,应当理解, 索引可以反映任何可能的实体属性。例如,在实体是文本字符串的情况下,匹配系统1可以适于统计每一个实体中的字符数目,且索引可以包括对应于字符数目或字符数目区间的索引点。同样地,匹配系统1可以包括用于分析实体的文本上下文的逻辑,因此索引的索引点可以对应于描述实体的文本上下文的单词或短语。索引23、23A当然还可以包括这些类型的索引点的组合。此外,尽管索引23、23A—般适于通过用单词来反映实体的属性来对实体编写索弓丨,但是实体本身不需要包括单词。例如,匹配系统1可以用于图片匹配服务或音轨匹配服务,在该些情况下,从客户端设备13A、i;3B发送的实体分别是图片和音轨。当用于图片匹配时,匹配系统1可以包括用于将图像的“可视属性”(由构成实体的数字图像文件的数据给出的)转换为可以构成索引23、23A中的索引点的单词或数的图像识别软件。例如,图像识别软件可以包括用于确定在图中中示出了什么对象的功能,例如通过分析图像中对象的形状,并将该形状与预存储的形状进行比较来确定,在查找表中,每一个预存储的形状与描述该形状的单词相关联。同样地,其可以适于通过数字颜色分析来确定图像的最显著的颜色或图像中的特定对象。从而,图像识别软件将能够分析图像,并确定例如该图像示出了蓝色汽车(blue car)。在该情况下,图像识别软件可以向匹配引擎7提供文本字符串‘blue car’,或已经如图5中字符串数组22—样提供分段文本字符串{ ‘blue’,‘car’},因此匹配引擎7可以如前所述的将图像实体与索引23、23A中对应于单词‘blue’和‘car’的索引点相关联。因此,在该情况下,索引23、23A中的单词将不对应于在实体中出现的单词,而是对应于通过反映其他实体属性来描述实体的单词。以类似方式,匹配系统1可以用于匹配音轨,在该情况下,匹配系统可以包括用于使用波形识别技术和/或通过分析在提交给系统的音频文件的音频文件数据内容中嵌入的文本信息来分析音轨的软件。然后可以将音轨的属性转换为描述这些属性的单词或数(例如歌曲的名称以及歌手的名字、音轨的每分钟拍子数目、音轨的类型等等),因此,可以将音轨与索引23、23A中对应于这些属性的索引点相关联。匹配系统1还可以与外部节点通信性地相连,该外部节点适于将实体的属性变换为可以用作索引点的单词或数。例如,匹配系统1可以与Gmcenote 服务器相连,该服务器是用于将音轨(即,歌曲)采样“变换”为歌曲名称和演唱该歌曲的歌手的名字的服务器。
应当理解,对应于匹配引擎索引23、23A中的索引点21、21A的符号序列(如单词或数)不一定对应于匹配系统1接收到的文本实体中找到的符号序列,而可能是描述任何类型实体或实体属性的任何符号序列(即,单词和/或数)。
权利要求
1.一种匹配系统,能够确定从第一用户的客户端设备接收的第一实体是否与在索引中已被编写索引的多个实体中的至少一个相匹配,在所述索引中,每一个实体与一个或多个索引点相关联,所述匹配系统包括应用服务器,适于与匹配引擎和所述客户端设备通信,所述匹配引擎,适于通过将所述第一实体与所述索引中的一个或多个索引点相关联,对所述第一实体编写索引,以及通过搜索和与所述第一实体相关联的索引点中的至少一个相关联的实体,在所述索引中已被编写索引的多个实体中搜索匹配所述第一实体的实体,所述匹配系统适于当匹配触发事件发生时发起针对与所述第一实体匹配的实体的搜索,其特征在于,所述匹配系统适于将接收到所述第一实体解释为匹配触发事件,使得当接收到所述第一实体时,发起所述搜索。
2.根据权利要求1所述的匹配系统,其中,所述匹配引擎适于针对要与所述第一实体相关联的每一个索引点,将所述第一实体与该索引点相关联,并检索标识出与该索引点相关联的其他实体的信息,从而在对所述索引的一个单次遍历中对所述第一实体编写索引且标识出与所述第一实体匹配的实体。
3.根据权利要求2所述的匹配系统,其中,所述实体包括单词,且所述索引包括索引点,其中,每一个索引点对应于单词,且与包括该单词的实体相关联,所述匹配引擎适于针对在所述第一实体中出现的且在所述索引中不存在对应的索引点的每一个单词, 向所述索引添加与该单词相对应的新的索引点,并将所述第一实体与所述新的索引点相关联,以及针对在所述第一实体中出现的且已在所述索引中存在对应的索引点的每一个单词,将所述第一实体与该索引点相关联,并检索标识出与该索引点相关联的其他实体的信息。
4.根据权利要求3所述的匹配系统,其中,所述索引是树类型索引,在所述树类型索引中,将与所述索引点相对应的单词表达为形成所述单词的字符序列,所述字符序列根据有序树结构进行组织,在所述有序树结构中,每一个序列的第一个字符与分支根节点相关联, 且每一个后续字符和与前一个字符相关联的节点的子节点相关联,使得每一个单词的字符形成在所述分支根节点和单词末节点之间的分支或分支的一部分,所述树类型索引的索引点对应于所述树结构的单词末节点,且每一个索引点与包括由在该索引点和所述分支根节点之间的字符序列形成的单词的所有实体相关联,所述匹配引擎适于将所述第一实体中的每一个单词表达为字符序列,且将如此形成的字符序列与所述树结构中的现有分支或分支的部分相匹配,以及针对未找到匹配的字符序列的每一个单词,创建新的分支或向现有分支添加子节点, 使得如此形成的分支对应于所述单词的字符序列,并通过将所述第一实体与如此形成的分支的叶节点相关联来创建新的索引点,以及针对找到匹配的字符序列的每一个单词,将所述第一实体与所述匹配的字符序列的索引点相关联,并检索标识出与该索引点相关联的其他实体的信息。
5.根据前述权利要求中任一项所述的匹配系统,其中,所述匹配引擎包括匹配评分装置,所述匹配评分装置适于当所述匹配引擎找到和与所述第一实体相关联的至少一个索引点相关联的多个实体时,基于至少一项标准对所述多个实体进行评分,所述至少一项标准之一是所述多个实体中的每一个实体与所述第一实体共同具有的索引点的数目,即,与所述多个实体中的实体相关联、且还与所述第一实体相关联的索引点的数目。
6.根据权利要求5所述的在从属于权利要求2至4中任一项时的匹配系统,其中,检索到的标识出与每一个索引点相关联的实体的信息是标识出与该索引点相关联的所有实体的实体标识参数的列表,所述匹配引擎适于在所述列表中排列针对所有索引点检索到的所有实体标识参数,以及所述匹配评分装置适于基于每一个实体的实体标识参数在所述列表中出现的次数对所述匹配实体进行评分。
7.根据前述权利要求中任一项所述的匹配系统,其中,所述应用服务器适于当在所述搜索期间找到至少一个匹配实体时,响应于所述匹配触发事件,向所述第一用户的客户端设备发送标识出所述至少一个匹配实体的信息。
8.根据前述权利要求中任一项所述的匹配系统,其中,所述应用服务器适于当在所述搜索期间找到之前从第二用户的客户端设备向所述应用服务器发送的至少一个匹配实体时,响应于所述匹配触发事件,向所述第二用户的客户端设备发送标识出所述第一实体的信息。
9.一种用于确定从第一用户的客户端设备接收的第一实体是否与在索引中已被编写索引的多个实体中的至少一个相匹配的方法,在所述索引中,每一个实体与一个或多个索引点相关联,所述方法包括步骤-在服务器节点中接收所述第一实体;-通过将所述第一实体与所述索引中的一个或多个索引点相关联,对所述第一实体编写索弓丨,以及-通过搜索和与所述第一实体相关联的索引点中的至少一个相关联的实体,在所述索引中已被编写索引的多个实体中搜索匹配所述第一实体的实体,当匹配触发事件发生时,发起针对与所述第一实体匹配的实体的搜索,其特征在于步骤-将接收到所述第一实体解释为匹配触发事件,从而当接收到所述第一实体时,发起所述搜索。
10.根据权利要求9所述的方法,其中,针对要与所述第一实体相关联的每一个索引点,通过以下步骤来执行搜索匹配实体并对所述第一实体编写索引的步骤-将所述第一实体与该索引点相关联,以及-检索标识出与该索引点相关联的其他实体的信息,从而在对所述索引的一个单次遍历中对所述第一实体编写索引且标识出与所述第一实体匹配的实体。
11.根据权利要求10所述的方法,其中,所述实体包括单词,且所述索引包括索引点, 其中的每一个索引点对应于单词,且与包括该单词的实体相关联,所述方法包括以下步骤针对在所述第一实体中出现的且在所述索引中不存在对应的索引点的每一个单词,-向所述索引添加与该单词相对应的新的索引点,以及-将所述第一实体与所述新的索引点相关联,以及针对在所述第一实体中出现的且已在所述索引中存在对应的索引点的每一个单词, -将所述第一实体与该索引点相关联,以及 -检索标识出与该索引点相关联的其他实体的信息。
12.根据权利要求11所述的方法,其中,所述索引是树类型索引,在所述树类型索引中,将与所述索引点相对应的单词表达为形成所述单词的字符序列,所述字符序列根据有序树结构进行组织,在所述有序树结构中,每一个序列的第一个字符与分支根节点相关联, 且每一个后续字符和与前一个字符相关联的节点的子节点相关联,使得每一个单词的字符形成在所述分支根节点和单词末节点之间的分支或分支的一部分,所述树类型索引的索引点对应于所述树结构的单词末节点,且每一个索引点与包括由在该索引点和所述分支根节点之间的字符序列形成的单词的所有实体相关联,所述方法包括以下步骤-将所述第一实体中的每一个单词表达为字符序列,以及-将如此形成的字符序列与所述树结构中的现有分支或分支的一部分相匹配,以及, 针对未找到匹配的字符序列的每一个单词,-创建新的分支或向现有分支添加子节点,使得如此形成的分支对应于所述单词的字符序列,以及-通过将所述第一实体与如此形成的分支的叶节点相关联来创建新的索引点,以及, 针对找到匹配的字符序列的每一个单词, -将所述第一实体与所述匹配的字符序列的索引点相关联,以及 -检索标识出与该索引点相关联的其他实体的信息。
13.根据权利要求9至12中任一项所述的方法,其中,在搜索匹配实体期间,当找到和与所述第一实体相关联的至少一个索引点相关联的多个实体时,所述方法还包括以下步骤-基于至少一项标准对所述多个实体进行评分,所述至少一项标准之一是所述多个实体中的每一个实体与所述第一实体共同具有的索引点的数目,即,与所述多个实体中的实体相关联、且还与所述第一实体相关联的索引点的数目。
14.根据权利要求13所述的在从属于权利要求10至12中任一项时的方法,其中,检索到的标识出与每一个索引点相关联的实体的信息是标识出与该索引点相关联的所有实体的实体标识参数的列表,所述方法包括以下步骤-在所述列表中排列针对所有索引点检索到的所有实体标识参数,以及-基于每一个实体的实体标识参数在所述列表中出现的次数对所述匹配实体进行评分。
15.根据权利要求9至14中任一项所述的方法,其中,当在所述搜索期间找到至少一个匹配实体时,所述方法包括以下步骤响应于所述匹配触发事件,向所述第一用户的客户端设备发送标识出所述至少一个匹配实体的信息。
16.根据权利要求9至15中任一项所述的方法,其中,当在所述搜索期间找到之前由所述服务器节点从第二用户的客户端设备接收的至少一个匹配实体时,所述方法包括以下步骤响应于所述匹配触发事件,向所述第二用户的客户端设备发送标识出所述第一实体的 fn息ο
17.—种包括计算机可读代码装置的计算机程序,当在服务器计算机上运行时,引起所述服务器计算机确定从第一用户的客户端设备接收的第一实体是否与在索引中已被编写索引的多个实体中的至少一个相匹配,在所述索引中,通过让所述服务器计算机执行以下步骤,让每一个实体与一个或多个索引点相关联-通过将所述第一实体与所述索引中的一个或多个索引点相关联,对所述第一实体编写索弓丨,以及-通过搜索和与所述第一实体相关联的至少一个所述索引点相关联的实体,在所述索引中已被编写索引的多个实体中搜索匹配所述第一实体的实体,当匹配触发事件发生时,发起针对与所述第一实体匹配的实体的搜索, 其特征在于,所述计算机程序适于引起所述服务器计算机将接收到所述第一实体解释为匹配触发事件,从而当接收到所述第一实体时,发起所述搜索。
18.根据权利要求17所述的计算机程序,所述计算机程序适于引起所述服务器计算机执行索引编写和搜索,使得针对要与所述第一实体相关联的每一个索引点,所述服务器计算机将所述第一实体与该索引点相关联,以及检索标识出与该索引点相关联的其他实体的信息,从而在对所述索引的一个单次遍历中对所述第一实体编写索引且标识出与所述第一实体匹配的实体。
19.一种计算机程序产品,包括根据权利要求17或18所述的计算机程序和存储所述计算机程序的计算机可读介质。
全文摘要
本发明涉及一种匹配系统,其能够确定从第一用户的客户端设备接收的第一实体是否与在索引中已被编写索引的多个实体中的至少一个相匹配,在所述索引中每个实体与一个或多个索引点相关联。所述匹配系统适于通过将所述第一实体与所述索引中的一个或多个索引点相关联,对所述第一实体编写索引;以及通过搜索与所述第一实体具有至少一个共同的索引点的实体,在所述索引中搜索匹配的实体。所述匹配系统适于当匹配触发事件发生时,发起针对匹配的实体的搜索,以及将接收到所述第一实体解释为这种匹配触发事件。从而当接收到新实体时,总是直接执行搜索。
文档编号G06F17/30GK102227725SQ200880132172
公开日2011年10月26日 申请日期2008年12月2日 优先权日2008年12月2日
发明者阿里门迪 卡拉尔多·蒙太罗, 奥洛夫·兰德斯特罗姆, 理查德·卡尔森, 雅尔玛·奥尔森 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1