重构搜索查询的技术的制作方法

文档序号:10663593阅读:202来源:国知局
重构搜索查询的技术的制作方法
【专利摘要】公开了一种方法,其包括接收搜索查询并且使用搜索查询在实体数据商店中识别实体记录。实体数据商店包括多个实体记录。每个实体记录都包括实体名称、实体类型和实体信息。实体类型指示实体名称和实体信息所属的种类。所述方法还包括通过将来自识别后的实体记录的一个或多个项插入至搜索查询中来生成重构后的查询。此外,所述方法还包括使用重构后的查询来进行软件应用的搜索并且生成在搜索期间所识别的软件应用的列表。
【专利说明】
重构搜索查询的技术[0001]发明人:利龙?沙皮拉;乔纳森?本祖尔;迈克尔?哈里斯
技术领域
[0002]本公开一般地涉及搜索领域,特别地涉及重构搜索查询的技术。【背景技术】
[0003]近年来,计算机、智能手机以及其他连接至因特网的设备的应用呈指数增加。相应地,这些设备可用的软件应用的数量也大幅增加。如今,能够在许多不同的设备上访问许多不同的应用,这些不同的设备包括但不限于智能手机、个人计算机、汽车和电视机。这些不同的应用可以包括业务驱动应用、游戏、教育应用、新闻应用、购物应用、消息应用、媒体流应用、社交网络应用等等。此外,应用开发者在每种类型中都开发了巨量的应用,并且每个应用都可以具有很多版本。
[0004]在搜索应用时,用户可以输入对应于实体的查询。这可能发生在用户针对某个应用输入指定用户的功能性要求的查询、而非输入该应用的类别或关键词的时候。例如,应用搜索系统可能接收到搜索查询“观看狮子王”。基于关键词的搜索可能无法捕捉用户想要寻找能够播放影片“狮子王”的视频播放应用的愿望。【附图说明】
[0005]在附图和下面的描述中阐述一个或多个实施例的细节。通过该描述、附图和权利要求,本其它特征、目的和优点将变得显而易见。
[0006]图1示出了包括用于支持软件应用搜索的搜索系统的示例性环境。
[0007]图2示出了示例性应用搜索模块。
[0008]图3A-3B示出了示例性应用记录。
[0009]图4示出了基于接收到的查询进行搜索的示例性方法。
[0010]图5为基于重构后的查询生成搜索结果的示例性搜索系统的功能性框图。
[0011]图6A-6C示出了示例性实体记录。
[0012]图7示出了基于重构后的查询生成搜索结果的方法。
[0013]图8为示例性实体识别模块和示例性查询重构模块的功能性框图。[〇〇14]图9A-9B示出了使用已识别的实体记录的实体类型来生成重构后的查询。
[0015]图10示出了使用已识别的实体记录的实体类型来生成重构后的查询的示例性方法。
[0016]图11A-11B示出了使用已识别的实体记录的实体名称来生成重构后的查询。
[0017]图12示出了使用已识别的实体记录的实体名称来生成重构后的查询的示例性方法。
[0018]图13A-13C示出了使用来自已识别的实体记录的实体信息的项来生成重构后的查询。
[0019]图14示出了使用来自已识别的实体记录的实体信息的项来生成重构后的查询的示例性方法。
[0020]图15A示出了包括实体质量评分的示例性实体记录。
[0021]图15B-15C示出了包括关联应用列表的示例性实体记录。[〇〇22]图16A-16B示出了重构后的查询和搜索结果如何与实体相关值相关联。
[0023]图17示出了使用实体相关值来生成结果评分的示例性方法。
[0024]图18A-18B示出了搜索结果如何由关联应用列表来限制。
[0025]图19示出了使用具有关联应用列表的实体记录来进行应用搜索的示例性方法。【具体实施方式】
[0026]附图和接下来的描述仅仅通过举例的方式来涉及示例性的实施方式。应该明白的是,通过下面的讨论,在此公开的结构和方法的可选实施方式将被容易地视作可行的替代方案,而在不脱离本公开范围的情况下可以采用这些可行的替代方案。
[0027]本公开涉及对软件应用(以下称作“应用”)的搜索。软件应用是用于计算设备的可执行程序,以允许计算设备执行不同的任务。本公开的搜索系统从用户的计算设备(例如移动计算设备)接收搜索查询。搜索系统响应于接收到的搜索查询来生成搜索结果。搜索结果包括应用列表,且应用可以基于不同的因素(如相关性)来排序。在一些实施方式中,搜索系统将搜索结果以应用列表的形式发送至计算设备。计算设备向用户显示应用列表,以便可以选择其中一个应用来预览和/或下载。尽管在一些实施方式中搜索系统将搜索结果列表发送至计算设备,但在其他的实施方式中搜索系统以不同的方式来使用搜索结果。在一个实施例中,搜索系统使用搜索结果来为用户生成广告。在一些实施例中,搜索系统可以选择发送哪个搜索结果。例如,搜索系统可以仅仅将排名最高的搜索结果发送给用户。
[0028]搜索系统包括应用数据商店和实体数据商店,并且可以使用其来生成搜索结果。 在一个实施方式中,搜索系统接收搜索查询并且生成一个或多个重构后的搜索查询,该重构后的搜索查询可以用来生成搜索结果。重构后的查询可以是接收到的搜索查询的重构体,该重构体包括取自实体数据商店且插入至接收到的搜索查询中的一个或多个项。在一个实施例中,选自实体数据商店的项取决于实体数据记录的哪个部分与接收到的搜索查询匹配。搜索系统可以使用每个重构后的查询来搜索应用数据商店。然后,搜索系统可以针对每个重构后的查询和/或接收到的搜索查询来生成搜索结果。该搜索结果可以被发送至用户的计算设备,从而在用户的计算设备上显示。
[0029]应用数据商店包括与多个不同应用相关联的数据。应用数据商店可以包括一个或多个数据库、索引(例如倒排索引)、文件、或存储该数据的其他数据结构。应用数据商店中的数据可以包括应用统计数据(例如下载次数)、与应用相关联的关键词、与应用相关联的评论、应用开发者的名字、应用的平台、应用的价格、应用的种类以及其他信息。应用数据商店可以包括可用于各种不同操作系统上的各种不同应用的数据。搜索系统可以检索并且分析来自应用数据商店的数据,从而提供搜索结果。
[0030]实体数据商店包括与多个不同实体相关联的数据。实体数据商店可以包括一个或多个数据库、索引(例如倒排索引)、文件或存储该数据的其他数据结构。本公开的实体数据商店包括多个实体记录。每个实体记录包括与不同实体相关联的数据。例如,实体记录可以包括描述实体的数据。通常,术语“实体”可以指名词(例如人、动物、地点、事物或想法)。实体的例子可以包括但不限于电影“狮子王”、“狮子王”的原声音乐、歌曲“嘿,朱迪(Hey Jude)”,以及书籍“霍比特人”。尽管实体通常指的是名词,但可以预期的是,其可以包括其他的词类(例如动词、形容词等等)。
[0031]实体记录可以是包括实体名称、实体类型和实体信息的数据结构。实体名称可以包括一个或多个文字、数字和/或符号(例如标点符号)。在一些实施例中,实体名称可以指表示人、动物、地点、事物或想法的名词、在一个实施例中,电影“狮子王”的实体记录的实体名称可以是“狮子王”。在另一个实施例中,歌曲“嘿,朱迪”的实体名称可以是“嘿,朱迪”。尽管实体名称可以指名词,但可以预期的是,其可以包括其他的词类(例如动词、形容词等等)。
[0032]每个实体记录可以包括实体类型,其可以指示实体名称和实体信息所属的类别。 换句话说,实体类型可以指示实体记录的数据所属的类别。实体类型可以包括一个或多个文字、数字和/或符号(例如标点符号)。在一些实施例中,实体类型可以是名词。示例性的实体类型包括但不限于电影实体类型、音乐实体类型、书籍实体类型以及游戏实体类型。在一个实施例中,具有实体名称“狮子王”的实体记录可以具有实体类型“电影”。在此实施例中, 实体类型“电影”指示名为“狮子王”的实体记录涉及电影。在另一个实施例中,具有实体名称“狮子王原声音乐”的实体记录可以具有实体类型“音乐”。在此实施例中,实体类型“音乐”指示名为“狮子王原声音乐”的实体记录涉及音乐。
[0033]每个实体记录可以包括实体信息。实体信息可以指包括在实体记录中、除了实体名称和实体类型之外的数据。实体信息可以包括数据的各种结构化类型。例如,实体信息可以包括结构化、半结构化和/或非结构化数据。下面将描述实体信息可以包括的不同数据类型的例子。[〇〇34]实体记录的实体信息中的结构化数据可以包括与定义的数据字段相关联的数据。 在一些实施方式中,定义的数据字段可以是为实体记录的实体类型所定制的。例如,具有实体类型“电影”的实体记录的实体信息可以包括用于演员、导演和制片人的数据字段。再例如,具有实体类型“音乐”的实体记录的实体信息可以包括用于演唱者、歌曲名和歌曲时长的数据字段。再例如,具有实体类型“书籍”的实体记录的实体信息可以包括用于作者、出版商和出版日期的数据字段。
[0035]实体记录的实体信息中的非结构化数据可以包括不与定义的数据字段特别相关联的数据。相反,非结构化数据可以是自由格式,例如来自网站的文本、评论文章、维基文章或其他来源。例如,实体类型“电影”的实体信息可以包括非结构化数据,如影评和剧情简介。再例如,实体类型“书籍”的实体信息可以包括非结构化数据,如书籍摘要、书评和书籍的节选。
[0036]实体记录的实体信息中的半结构化数据可以指广义上与数据字段相关联的数据, 但数据字段中的数据以非结构化方式来提供。例如,实体信息中的数据可以广义上与描述数据字段相关联,但是与描述数据字段相关联的文本可以在细粒度更小的级别上视作非结构化的。在实体“书籍”的实例中,半结构化数据可以包括在用于书籍第一章的数据字段中的书籍章节摘要。在实体“电影”的实例中,半结构化数据可以包括在用于影评的数据字段中的影评文本。
[0037]在一些实施方式中,实体记录还可以包括实体标识(以下称为“实体ID”),实体ID 用于在实体数据商店中所包括的其他实体记录中识别所述实体记录。例如,实体ID可以唯一地识别实体记录。实体ID可以是用于唯一识别其中包括所述实体ID的实体记录的字母、 数字和/或符号(例如标点符号)字符串。在其中不同实体记录具有相同实体名称的实体数据商店的实施方式中,实体ID和/或实体类型可以用于区分实体记录。例如,实体名称“贝多芬”能够与大量不同实体记录相关联,如具有实体类型“音乐”的实体记录、具有实体类型 “传记”的实体记录以及具有实体类型“电影”的实体记录。虽然名称相似,但是实体ID允许区分这些实体记录“贝多芬”,以及允许区分具有相同类型(并且另外具有相似实体信息)的实体记录。
[0038]如上所述,搜索系统可以使用接收到的搜索查询来生成一个或多个重构后的查询。一般地,搜索系统可以使用接收到的搜索查询和来自实体数据商店中包括的实体记录的一个或多个项来生成重构后的查询。在一个实施例中,搜索系统将来自实体记录的一个或多个文字插入至接收到的搜索查询中,从而生成重构后的查询。在另一个实施例中,搜索系统可以将来自接收到的搜索查询的一个或多个文字替换为从实体记录中获得的一个或多个文字。搜索系统可以使用一个或多个重构后的查询,在应用数据商店中进行一次或多次应用搜索。
[0039]搜索系统可以使用搜索查询来识别与搜索查询有关的一个或多个实体记录。识别后的实体记录可以用于生成一个或多个重构后的查询。搜索系统可以以多种不同的方式识别实体记录。一般地,搜索系统可以通过检测接收到的搜索查询的项和实体记录中包括的项之间的匹配度或近似匹配度来识别实体记录。在一个实施例中,搜索系统可以通过检测接收到的搜索查询的项和实体名称、实体类型或实体信息之间的匹配度或近似匹配度来识别实体记录。现将描述使用来自识别后的实体记录的项来识别实体记录和生成重构后的查询。
[0040]通过其识别实体的实体记录的内容可以影响添加至重构后的查询的实体项。在一个实施例中,当搜索系统通过实体名称来识别实体记录时,重构后的搜索查询包括与该实体记录相关联的实体类型。因此,在一些实施方式中,搜索系统可以通过识别接收到的搜索查询中的实体名称来识别实体记录。例如,搜索系统可以确定实体名称与搜索查询中的一个或多个项匹配或相似。在此实施例中,搜索系统可以识别出识别后的实体记录的实体类型。然后,搜索系统可以将识别后的实体类型插入至接收到的搜索查询中,从而生成重构后的查询。例如,搜索系统可以通过将与实体名称相似的接收到的搜索查询的项替换为实体类型来生成重构后的查询。使用实体类型而不是实体名称的具有重构后的查询来进行的搜索可以有助于提供相关性更高的搜索结果。在此包括实体类型的实例中,重构后的查询可以是更广义的搜索查询,其针对用户输入的搜索查询来捕捉更多的应用。由该更广义的搜索查询所导致的大量应用可以包括那些使用具有实体名称的更具体的查询所不能发现的相关应用。
[0041]现将描述将实体类型插入至接收到的搜索查询中的例子。在接收到的搜索查询为 “观看‘公民凯恩’”的实施例中,搜索系统可以识别包括实体名称“公民凯恩”以及实体类型 “电影”的实体记录。然后,搜索系统可以将实体类型“电影”插入至接收到的搜索查询中以取代文字“公民凯恩”,从而获得重构后的查询“观看电影”。然后,搜索系统可以使用查询“观看电影”来搜索应用数据商店。与原始的搜索查询“观看‘公民凯恩’”相比,重构后的查询“观看电影”可以更好地捕捉用户更广义的搜索意图。例如,如果用户试图寻找电影播放应用,与包括文字“公民凯恩”的搜索相比,重构后的查询“观看电影”可以获得更倾向于电影播放应用的搜索结果。
[0042]搜索系统可以响应于接收到的搜索查询来识别多个实体记录,例如当多个实体记录包括相同的实体名称时。例如,如果接收到的搜索查询为“读‘傲慢与偏见’”,搜索系统可以识别多个实体记录,如电影“傲慢与偏见”和书籍“傲慢与偏见”。在此实施例中,搜索系统可以针对每个识别后的实体记录来生成重构后的查询。具体地,搜索系统可以生成重构后的查询“观看电影”和“看书”。在一些实施例中,可以从发送给用户的搜索结果中过滤那些针对重构后的查询所获得的相关性更小的结果。尽管以上是按照生成一个或两个重构后的查询来对搜索系统进行描述,但是搜索系统可以基于识别后的实体记录的数量来生成任意数量的重构后的查询。
[0043]在一些实施例中,搜索系统可以通过将来自实体信息的一个或多个项插入至接收到的搜索查询中来生成重构后的查询。在这些实施例中,搜索系统可以基于与实体名称的匹配度或近似匹配度来识别实体记录。然后,搜索系统可以将来自实体信息的一个或多个项插入至接收到的搜索查询中,从而生成重构后的查询。这个重构后的查询可以获得符合用户不同方面兴趣的额外的搜索结果。在一个实施例中,如果识别后的实体记录为电影,那么搜索系统可以生成包括演员名称的一个或多个重构后的查询。在此情况下,如果用户对电影中的某个演员感兴趣,那么重构后的查询可以获得与演员有关的额外的搜索结果,以供用户考虑。因此,可以针对每个识别后的实体记录生成超过一个重构后的搜索查询。
[0044]在一些实施方式中,搜索系统可以通过检测搜索查询中包括的实体记录的实体信息中的项来识别实体记录。例如,当实体记录的实体信息包括与接收到的搜索查询相似的文字时,搜索系统可以识别该实体记录。在此实施例中,搜索系统可以识别出识别后的实体记录的实体类型和/或实体名称。然后,搜索系统可以将识别后的实体类型和/或实体名称插入至接收到的搜索查询中,从而生成重构后的查询。例如,搜索系统可以通过将接收到的搜索查询的文字替换为识别后的实体类型和/或实体名称来生成重构后的查询。如上所述, 包括实体类型的重构后的查询可以是更广义的搜索查询,其在搜索期间捕捉更多的结果 (如应用)。
[0045]用根据识别后的实体记录的实体名称所生成的重构后的查询来进行的搜索可以提供更有针对性的搜索。例如,如果接收到搜索查询“听‘黑道家族’主题曲”,那么搜索系统可以基于歌曲“今早醒来(Woke Up This Morning)”的实体记录的实体信息中包括的文字来识别歌曲“今早醒来(Woke Up This Morning)”的实体记录。然后,搜索系统可以生成重构后的查询“听‘今早醒来(Woke Up This Morning)’”,其比笼统的搜索查询“听‘黑道家族’主题曲”更有针对性。再例如,如果接收到搜索查询“观看儿童卡通电影”,那么搜索系统可以基于“狮子王”的实体记录的实体信息中所包括的文字来识别电影“狮子王”的实体记录。然后,搜索系统可以生成重构后的查询“观看‘狮子王’”,其比笼统的搜索查询“观看儿童卡通电影”更有针对性。
[0046]在其他的实施方式中,搜索系统可以通过检测搜索查询中包括的实体记录的实体信息中的第一组项来识别实体记录,然后使用来自识别后的实体记录的实体信息的第二组项来生成重构后的查询。例如,搜索系统可以基于搜索查询“观看儿童卡通电影”来识别电影“狮子王”(如实体类型“电影”)的实体记录。然后,搜索系统可以通过将配音演员名字插入至接收到的搜索查询中来生成重构后的查询。重构后的查询的例子可以包括“观看马修?波特历的电影”和“观看詹姆斯?厄尔?琼斯的电影”。如上所述,这些重构后的查询可以获得符合用户不同方面兴趣的额外的搜索结果。在另一个实施例中,搜索系统可以通过将其他实体信息插入至搜索查询中来生成重构后的查询。例如,搜索系统可以将“狮子王” 的制片公司插入至搜索查询中,从而生成重构后的查询“观看迪士尼电影”。再例如,搜索系统可以将“狮子王”的描述,例如项“动画音乐”,插入至搜索查询中。在此实施例中,搜索系统可以生成重构后的查询“观看动画音乐”。
[0047]搜索系统可以设置成使用以上描述的任意方法来重构搜索查询。例如,搜索系统可以使用一个或多个以上描述的重构技术来基于接收到的单个搜索查询生成一个或多个重构后的查询。搜索系统还可以针对接收到的搜索查询以及重构后的查询进行搜索。在一些场景中,搜索系统不可以基于接收到的搜索查询来识别实体数据商店的实体记录。例如, 一些搜索查询不会包括充分匹配实体数据商店所包括的实体记录的文字。在这些实施例中,搜索系统可以避免生成重构后的查询。相反,搜索系统会使用接收到的查询来进行应用搜索。
[0048]如上所述,搜索系统可以生成包括应用列表和与应用相关联的结果评分的一组搜索结果。搜索系统可以根据与应用相关联的结果评分来对应用列表进行排序。在一些实施方式中,与具有较低结果评分的应用相比,应用相关联的结果评分越高,则意味着应用与搜索查询的相关性越大。在一些实施例中,结果评分的取值范围为〇.〇至1.0,其中结果评分 1.0表示应用与搜索查询高度相关。
[0049]搜索系统可以以各种不同方式来生成结果评分。在一些实施例中,搜索系统可以基于实体记录中包括和/或在接收到搜索查询后确定的实体相关值来生成结果评分。在使用实体相关值的搜索系统的一些实施方式中,应用可以基于各种不同因素分配一个初始评分。这里,初始评分可以是基于与查询和/或应用相关联的特征来分配。然后,初始评分可以由一个或多个实体相关值来加权,从而生成应用的结果评分。例如,可以将应用的初始评分与实体相关值相乘,从而生成结果评分。在此描述的实体相关值的两个例子包括实体质量评分和查询-实体符合度评分。在此参考图15A至图17来描述使用实体质量评分和查询-实体符合度评分所进行的搜索结果加权。
[0050]实体质量评分可以与实体记录的其他数据(如实体名称,实体类型和实体信息)一起包括在该实体记录中。实体质量评分可以是搜索系统用来加权应用的初始评分的数字。 在一些实施例中,实体质量评分可以表示实体的相对受欢迎度。在这些实施例中,实体质量评分可以基于实体记录所描述的实体的受欢迎度被分配给该实体记录。例如,如果两个实体记录都与电影相关,那么更受欢迎的电影(例如下载更多的电影)的实体质量评分更高。 在某种意义上,实体质量评分可以实现这样一个概念,即在其他所有东西都一样的情况下, 与不那么受欢迎的实体相比,用户更愿意看到更受欢迎的实体的搜索结果。在更量化的意义上,实体质量评分可以表示随机用户的搜索查询愿意参考与实体记录相关联的实体的可能性。
[0051]搜索系统可以使用实体质量评分按以下方式来加权搜索结果。首先,搜索系统可以使用实体记录来生成重构后的查询。然后,搜索系统可以使用重构后的查询来进行搜索。 搜索获得的每个应用都分配有一个初始评分。接下来,搜索系统可以用实体记录的实体质量评分来加权应用的初始评分,该实体记录用于生成在搜索过程中所使用的重构后的查询。在一个实施例中,搜索系统可以将应用的初始评分与实体质量评分相乘,从而生成应用的结果评分。在此实施例中,实体质量评分越高,则结果评分越高。
[0052]查询-实体符合度评分是另一个可以用来加权与应用相关联的初始评分的实体相关值。查询_实体符合度评分可以指示接收到的查询与基于接收到的查询而识别的实体记录之间的匹配度。例如,查询-实体符合度评分可以是基于接收到的搜索查询的文本与识别后的实体记录的文本之间的匹配度。在接收到的搜索查询的文本与实体记录(如实体名称) 的文本严格匹配的情况下,查询-实体符合度评分会更高。搜索系统可以在初始识别实体记录之后确定与识别后的实体记录相关联的查询-实体符合度评分。搜索系统可以用查询-实体符合度评分来加权应用的初始评分。例如,搜索系统可以将应用的初始评分与查询-实体符合度评分相乘。
[0053]在一些实施方式中,搜索系统可以使用实体相关值来减少搜索进行的次数。通过减少搜索进行的次数可以减少用于将搜索结果递送给用户的整体计算资源。在一个实施例中,如果识别后的实体记录具有较低的实体质量评分,那么搜索系统可以放弃(如忽略)识别后的实体记录。例如,搜索系统可以避免使用质量评分比阈值低的识别后的实体记录来生成重构后的查询。相似地,如果识别后的实体记录与较低的查询-实体符合度评分相关联,那么搜索系统可以放弃该识别后的实体记录。[〇〇54]这里,应用系统可以使用其他过滤技术来放弃识别后的实体记录,从而减少用于进行搜索的整体计算资源。在一些实施例中,搜索系统可以放弃具有作为其他识别后的实体记录的实体名称的子字符串的实体名称的识别后的实体记录。例如,如果搜索查询包括实体名称“黑暗骑士崛起”并且搜索系统识别了 “黑暗骑士崛起”和“黑暗骑士”的实体记录, 那么搜索系统可以使用在此公开的技术来放弃“黑暗骑士”的实体记录。
[0055]在搜索系统的一些实施方式中,实体记录可以包括关联应用列表以及实体名称、 实体类型和实体信息。实体记录中包括的关联应用列表可以是与实体记录以某种方式相关的应用的列表。因为实体数据商店中的实体记录描述了不同的实体,所以每个实体记录可以具有不同的关联应用列表。换句话说,应用和实体记录之间的关联性可以是基于每个实体记录的。
[0056]基于各种不同的理由,不同应用可以与一个实体记录相关联。在一些实施例中,关联应用可以将实体类型作为输入来处理。例如,如果实体记录具有实体类型“电影”,那么实体记录可以在关联应用列表中包括电影播放应用。相似地,具有实体类型“音乐”的实体记录中的关联应用列表可以包括音乐播放应用。因为实体数据商店中的实体记录描述了不同的实体,所以可以预期的是,具有相同实体类型的实体记录可以具有不同的关联应用列表。 例如,具有实体类型“电影”的不同实体记录可以具有不同的电影播放应用列表以及不同的电影数据库应用列表。相似地,具有实体类型“音乐”的不同实体记录可以具有不同的关联音乐播放器列表。
[0057]关联应用列表可以被用作过滤器,以减少由搜索系统评分的应用的总数。例如,搜索系统可以限制只对在识别后的实体记录中列出的那些应用进行评分。搜索系统可以按以下方式使用实体记录中的关联应用列表。首先,搜索系统可以通过查找识别后的实体记录中包括的关联应用列表来确定哪些应用与该识别后的实体记录相关联。然后,搜索系统可以使用识别后的实体记录来生成重构后的查询。典型地,在没有关联应用列表的情况下,搜索系统搜索应用数据商店以确定应用的参考集合,随后对其进行评分。当识别后的实体记录包括关联应用列表时,搜索系统可以忽略搜索应用数据商店的步骤而直接对应用列表中的应用进行评分。这样一来可以减少被评分的应用的数量,从而减少用于生成搜索结果的计算资源。尽管使用关联应用列表可以有助于减少用于生成搜索结果的计算资源,但是由于关联应用列表中所列出的那些应用可能已经被确定为与搜索结果所基于的实体记录相关,因此关联应用列表还可以帮助提供相关的搜索结果。
[0058]如上所述,搜索系统可以针对每个重构后的查询来进行搜索。使用重构后端的查询来进行的每次搜索都返回一组搜索结果。因为搜索系统可以针对每个重构后的查询来进行搜索,所以应用搜索可以返回多组搜索结果。搜索系统还可以针对接收到的查询返回一组搜索结果。在一些实施方式中,搜索系统可以将响应于每个重构后的查询所生成的搜索结果和响应于接收到的搜索查询所生成的搜索结果组合成一组组合后的搜索结果。例如, 搜索系统可以去除重复的搜索结果并且将所有生成的搜索结果进行排序作为一组组合后的搜索结果。然后,可以将该组组合后的搜索结果发送至曾生成搜索查询的用户设备。
[0059]以下将参考图1至图19描述进行搜索的技术。图1示出了包括根据本公开的搜索系统的示例性环境。图2至图4示出了用于搜索应用数据商店的技术。图5至图14示出了用于在搜索应用数据商店中所使用的重构后的查询的技术。图15A和图16A至图17示出了用于使用实体相关值来加权结果评分的技术。图15B至图15C和图18A至图19示出了用于使用实体记录中的关联应用列表的技术。
[0060]图1是表示包括用于进行软件用于搜索的搜索系统102的示例性环境100的功能性框图。软件用于可以指使得计算设备进行任务的计算机软件。在一些实施例中,软件应用可以称作“应用”、“app”或“程序”。应用的例子包括但不限于文字处理应用、电子制表应用、消息应用、媒体流应用、社交网络应用以及游戏。
[0061]应用能够在各种不同的计算设备上执行。例如,应用能够在移动计算设备上执行, 例如智能手机、平板计算机和可穿戴计算设备(如耳机和/或手表)。应用还可以在具有其他形状因素的其他类型的计算设备上执行,例如笔记本计算机、台式计算机或其他消费型电子设备。在一些实施例中,在用户购买计算设备前,应用可以安装在该计算设备上。在其他一些实施例中,用户可以自己在计算设备上下载并且安装应用。
[0062]可以在安装有应用的计算设备上访问该应用的功能。此外,或者可选地,可以通过远程计算设备访问应用的功能。在一些实施例中,在安装有应用的计算设备上包括该应用的所有功能。这些应用在不与其他计算设备通信(例如通过因特网)的情况下也能起作用。 在其他一些实施例中,在运行期间,安装在计算设备上的应用访问来自其他远程计算设备的信息。例如,安装在计算设备上的天气应用在运行期间可以经由因特网访问最新的天气信息,并且通过所安装的天气应用向用户显示所访问的天气信息。在其他一些实施例中,应用(例如基于网页的应用)可以部分地由用户的计算设备来执行并且部分地由远程计算设备来执行。例如,网页应用可以是至少部分地由网页服务器来执行并且通过用户的计算设备上的网页浏览器来访问的应用。网页应用的例子包括但不限于基于网页的电子邮件、在线拍卖和在线零售网站。
[0063]搜索系统102被设置成经由网络106从一个或多个用户设备104接收搜索查询。搜索系统102响应于接收到的搜索查询进行应用的搜索。搜索可以生成一组包括应用列表的搜索结果,每个应用与结果评分相关联,结果评分指示在列表中该应用相对于其他应用的排序。然后,搜索系统102可以将搜索结果发送至曾发送搜索查询的用户设备。
[0064]用户设备104可以向用户显示搜索结果,并且允许用户选择列表中的一个应用,从而查看与应用相关的信息和/或下载应用。在一些实施例中,发送至用户的搜索结果中列出的应用(例如可执行程序)可从不同于搜索系统102的其他系统访问(例如从其他系统下载)。换句话说,搜索系统102可以存储与在不同于搜索系统102的位置处访问的应用相关的数据。例如,应用可以从设置成分发应用的数字分发平台处访问。数字分发平台的例子包括但不限于谷歌公司开发的谷歌市场(Google Play),苹果公司开发的App Store,以及微软公司开发的Windows Phone Store。尽管在搜索结果中列出的应用可以在不同于搜索系统 102的位置处访问,但是在一些实施方式中,搜索系统102可以包括用于下载的应用。
[0065]搜索系统102包括应用数据商店108和应用搜索模块110。应用数据商店108包括与不同应用相关的各种不同类型的数据。应用数据商店108可以包括一个或多个数据库、索引 (例如倒排索引)、文件或其他可以用来实施本公开技术的数据结构。这里,应用数据商店 108中包括的数据可以包括应用的描述、与应用相关的统计数据(如下载次数、评论次数等等),以及其他信息。如下面所描述的那样,应用搜索模块110接收查询(如重构后的查询和/ 或用户搜索查询),并且基于应用数据商店108中包括的数据来生成搜索结果。
[0066]搜索系统102包括实体数据商店112、实体识别模块114以及查询重构模块116。实体数据商店112包括多个实体记录(如图6A中的实体记录152)。实体识别模块114接收搜索查询(如从用户设备104接收)。实体识别模块114基于接收到的搜索查询来识别在实体数据商店112中包括的一个或多个实体记录。例如,实体识别模块114可以通过检测接收到的搜索查询的项和实体记录(如实体名称、实体类型和/或实体信息)中包括的项之间的匹配度或近似匹配度来识别实体记录。项包括一个或多个文字、数字和/或符号。因此,实体识别模块114可以通过检测接收到的搜索查询中包括的文字、数字和/或符号和实体记录中包括的文字、数字和/或符号之间的匹配度或近似匹配度来识别实体记录。
[0067]查询重构模块116使用来自一个或多个识别后的实体记录的项来生成一个或多个重构后的查询。例如,查询重构模块116可以将来自一个或多个识别后的实体记录的文字插入至接收到的搜索查询中,从而生成一个或多个重构后的查询。应用搜索模块110接收由查询重构模块116生成的一个或多个重构后的查询。应用搜索模块110可以使用从查询重构模块116接收到的每个重构后的查询来进行搜索。应用搜索模块110还可以使用从用户设备 104接收到的原始搜索查询来进行搜索。应用搜索模块110可以生成基于每次搜索的搜索结果。
[0068]搜索系统102可以实施各种加权和过滤技术。在搜索系统102的一些实施方式中, 搜索系统102可以将一个或多个加权值与重构后的查询(如实体质量评分和/或查询-实体符合度评分)相关联。在这些实施方式中,搜索系统102可以基于加权值来生成针对应用的结果评分。在搜索系统102的一些实施方式中,实体记录可以包括关联应用列表。在这些实施方式中,搜索系统102可以将搜索结果限制到与用于生成重构后的查询的实体记录相关联的那些应用。在此将参考图15A至图19来描述不同的加权和过滤方法。
[0069]搜索系统102可以经由网络106与用户设备104、伙伴计算系统118以及数据源120 通信。现将按次序描述用户设备104、伙伴计算系统118、数据源120以及网络106的例子。
[0070]图1所示的示例性环境100包括多个用户设备104。在此,单个用户设备同样可以称作用户设备104。用户设备104可以是能够向搜索系统102提供搜索查询的任何计算设备。用户设备104包括但不限于智能手机、平板计算机、笔记本计算机以及台式计算机,如图1所示。用户设备104还可以包括具有其他形状因素的其他计算设备,例如车辆中包括的计算设备、游戏设备、电视或其他电器(如联网的冰箱)。
[0071]用户设备104可以使用各种不同的操作系统。在其中用户设备104为移动设备的一个实施例中,用户设备104可以运行操作系统,其包括但不限于Android,苹果公司开发的 1S,或微软公司开发的Windows Phone。在其中用户设备104为笔记本计算机或台式计算机的一个实施例中,用户设备104可以运行操作系统,其包括但不限于Microsoft Windows, Mac 0S或Linux。用户设备104还可以在运行不同于上述操作系统的、当前可用或未来出现的操作系统的同时访问搜索系统1 〇 2。
[0072]用户设备104能够经由网络106与搜索系统102通信。在一些实施例中,用户设备 104可以使用安装在用户设备104上的应用来与搜索系统102通信。一般地,用户设备104可以使用能够向搜索系统102发送搜索查询的任何应用来与搜索系统102通信。在一些实施例中,用户设备104可以运行指定用于与搜索系统102接口连接的应用,例如指定用于应用搜索的应用。在一些实施例中,用户设备104可以使用更通用的应用来与搜索系统102通信,例如网页浏览器应用。由用户设备104运行从而与搜索系统102通信的应用可以在图形用户界面(GUI)上显示搜索框,用户可以在图形用户界面中输入搜索查询。用户可以使用触摸屏或物理键盘、语音转文字程序或其他形式的用户输入设备来输入搜索查询。[〇〇73]输入至用户设备104的GUI中的搜索查询可以包括文字、数字和/或符号。一般地, 搜索查询可以是来自搜索系统102的用于信息检索(如搜索结果)的请求。例如,在其中搜索系统102被设置成生成应用列表作为搜索结果的实施例中,搜索查询可以指向应用列表的检索。指向应用列表检索的搜索查询可以表示用户希望检索具有由搜索查询所描述的功能的那些应用。
[0074]用户设备104可以从搜索系统102接收响应于发送至搜索系统102的搜索查询的一组搜索结果。用户设备104可以是正在运行包括显示从搜索系统102接收到的搜索结果的 GUI的应用。例如,用于向搜索系统102发送搜索查询的应用还可以向用户显示所接收到的搜索结果。如上所述,在一些实施例中,向用户显示所接收到的搜索结果的应用可以专用于与搜索系统102接口连接。在其他一些实施例中,应用可以是更广义的应用,例如网页浏览器应用。
[0075]根据向用户设备104发送的信息,在用户设备104上运行的应用的GUI可以与各种不同的方式向用户显示搜索结果。在其中搜索结果包括排序后的应用列表的一些实施例中,搜索系统102可以向用户设备104发送应用列表。在此实施例中,GUI可以以应用名称列表形式向用户显示搜索结果。在一些实施例中,搜索系统102或其他计算系统可以向用户设备104发送额外信息,包括但不限于应用评级、应用下载次数、应用截图以及应用描述。在一些实施例中,这些额外信息可以存储在应用数据商店108中,并且通过搜索系统102发送至用户设备104。在其中用户设备104接收这些额外信息的一些实施例中,GUI可以将这些额外信息与应用名称列表一起显示。在一些实施例中,GUI可以将搜索结果显示为从屏幕的顶端至屏幕的底部、按结果评分的降序进行排列的应用列表。在一些实施例中,可以在用户向其中输入搜索查询的搜索框的下方显示搜索结果。
[0076]在一些实施例中,用户设备104可以经由伙伴计算系统118来与搜索系统102通信。 伙伴计算系统118可以表示能够利用搜索系统102的搜索功能的第三方计算系统。伙伴计算系统118可以属于与运行搜索系统102的公司或组织不同的公司或组织。能够利用搜索系统 102的搜索功能的第三方的例子可以包括但不限于因特网搜索提供商和无线通信业务提供商。用户设备104可以将搜索查询经由伙伴计算系统118发送至搜索系统102。用户设备104 还可以经由伙伴计算系统118从搜索系统102接收搜索结果。在一些实施例中,伙伴计算系统118可以向用户设备104提供用户接口和/或修改在用户设备104上的搜索体验。[〇〇77]图1示出了多个数据源120-1,120-2,…,120-5(统称为“数据源120”)。数据源120 可以是搜索系统102能够使用其来生成和更新应用数据商店108和实体数据商店112的数据的源。例如,搜索系统102可以基于从数据源120获得的数据来生成新的应用记录(如图3A所示的应用记录130)并且更新现有的应用记录。搜索系统102还可以基于从数据源120获得的数据来生成新的实体记录(如图6A所述实体记录152)并且更新现有的实体记录。尽管图1中没有示出,但是搜索系统102可以包括基于从数据源120获得的数据来生成新的记录并且更新现有记录的模块。
[0078]数据源120可以包括各种不同的数据提供商。数据源120可以包括设置成向用户设备104分发应用的数字分发平台(即应用商店120-1)的运营商。数据源120还可以包括来自应用开发者120-2(例如应用开发者的网站)的数据。数据源120还可以包括来自其他网站的数据,例如包括网页日志120-3(即博客)、应用评论网站120-4或其他包括与应用相关的数据的网站。此外,数据源120可以包括社交网络站点120-5,例如“脸书”(例如脸书帖子)和 “推特”(例如来自推文的文本)。除了上述的数据源之外,数据源120还可以包括其他类型的数据源。通常,每个数据源包含关于应用的不同内容。不同的数据源可以具有其自己的内容和更新率。
[0079]搜索系统102从一个或多个数据源120获得数据。从各种数据源120获得的数据能够包括与应用相关的任意类型的数据。与应用相关的数据的例子包括但不限于应用名称、 应用的描述、应用的实质性评论、应用的质量评级、开发者名称、关于应用的博客帖子的节选、关于应用的推文、以及与应用相关的一个或多个图像(例如图标和/或截图)。与应用相关的数据还可以包括但不限于统计数据,例如下载次数、下载率(如每月的下载次数)、评论的数量和评级的数量。在一些实施例中,从数据源120获得的数据可以包括关于应用功能的 fg息。
[0080]搜索系统102被设置成基于从数据源120获得的数据来生成和更新应用数据商店 108中的数据。例如,搜索系统102可以使用所获得的数据以更新一个或多个数据库、索引、 文件或在应用数据商店108中包括的其他数据结构。这里,应用数据商店108可以包括多个应用记录。搜索系统102可以基于从数据源120获得的数据来生成新的应用记录并且更新现有的应用记录。在一些实施例中,在应用数据商店108中包括的一些数据可以手动生成。
[0081]搜索系统102从各种数据源120获得实体数据。从各种数据源120获得的实体数据能够包括与在此描述的实体记录相关的任意类型的数据。例如,实体数据可以包括与实体名称、实体类型、实体信息、实体质量评分和关联应用列表相关的任何数据。现参考图6A至图6C以及图15A至图15C更详细地描述实体记录中包括的数据的例子。
[0082]搜索系统102被设置成根据从数据源120获得的数据来生成和更新实体数据商店 112。例如,搜索系统102可以使用所获得的数据来更新一个或多个数据库、索引、文件或包括在实体数据商店112中的其他数据结构。搜索系统102可以根据从数据源120获得的数据来生成新的实体记录并且更新现有的实体记录。在一些实施例中,实体数据商店112中包括的一些数据可以手动生成。[〇〇83] 如上所述,用户设备104、搜索系统102和数据源120可以经由网络106彼此通信。网络106可以包括不同类型的网络,例如广域网(WAN)和/或因特网。尽管网络106可以表示远程网络(例如因特网或WAN),但在一些实施方式中,网络106可以包括短程网络,例如局域网 (LAN)。在一个实施例中,网络106使用标准通信技术和/或协议。因此,网络106可以包括使用诸如以太网、无线保真(WiFi)(如802.11)、全球微波互联接入(WiMAX)、3G、长期演进 (LTE)、数字用户线路(DSL)、异步传输模式(ATM)、无限宽带、PCI Express高级交换等技术的链路。相似地,在网络106上使用的组网协议可以包括多协议标签交换(MPLS)、传输控制协议/因特网互联协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)等等。在网络106上交换的数据可以使用以下技术和/ 或格式来表示:超文本标记语言(HTML)、可扩展标记语言(XML)等。此外,所有或部分链路可以使用常规加密技术来加密,例如加密套接字协议层(SSL)、传输层安全协议(TLS)、虚拟专用网络(VPN)、网际协议安全(IPsec)等等。在其他一些实施例中,网络106可以用自定义和/ 或专用数据通信技术来替换上述技术,或与上述技术一起使用。
[0084]图2示出了可以包括在搜索系统102中的示例性应用搜索模块110。应用搜索模块 110包括查询分析模块122、应用组生成模块124(以下称作“组生成模块124”)以及应用组处理模块126(以下称作“组处理模块126”)。查询分析模块122分析接收到的查询128(例如重构后的查询)。组生成模块124基于接收到的查询128来识别一组应用(例如应用记录)。在此,识别后的一组应用可以被称作“考虑组”。组处理模块126处理(例如评分)考虑组以生成一组搜索结果129,该一组搜索结果可以包括应用列表以及指示每个应用在列表中的相对排序的相应结果评分。
[0085]如上所述,应用数据商店108包括与多个不同应用相关的数据。在此,与应用关联的数据可以被称作“应用记录”(例如图3A中所示的应用记录130)。因此,应用数据商店108 可以包括多个不同的应用记录,每个应用记录都包括与不同应用相关的数据。[〇〇86] 现参考图3A,示例性应用记录130包括应用名称132、应用标识134和应用属性136。 通常,应用记录130可以表示存储在应用数据商店108中的与应用相关的数据。应用数据商店108包括与多个不同应用相关的数据。因此,应用数据商店108可以包括多个具有与应用记录130相似的结构的应用记录。换句话说,应用数据商店108可以包括多个具有应用名称 132、应用标识134和应用属性136的应用记录。
[0087]应用名称132可以是由应用记录130中的数据所代表的应用的名称。应用名称的例子可以包括“谷歌地图”、“脸书”、“推特”、“微软文字处理软件(Microsoft Word)”或“愤怒的小鸟”。应用标识134(以下称作“应用ID 134”)从应用数据商店108中包括的其他应用记录中识别应用记录130。例如,应用ID 134可以唯一识别应用记录130。应用ID 134可以是唯一识别包括应用ID 134的应用记录130的字母、数字和/或符号字符串(例如标点符号)。
[0088]应用属性136可以包括与由应用记录130表示的应用相关联的任意类型的数据。应用属性136可以包括各种不同类型的数据。例如,应用属性136可以包括结构化、半结构化和/或非结构化数据。应用属性136可以包括从数据源120获得的文档中提取或推断出的信息。在一些实施例中,应用属性136可以包括手动生成的数据。应用属性136可以被更新,使得能够响应于用户搜索查询来提供最新的结果。
[0089]应用属性136可以包括应用开发者的名称、应用的出版商、应用的类别(如种类)、 应用的描述(如开发者的描述)、应用的版本、应用的操作系统以及应用的价格。应用属性 136还可以指示关于应用的安全或隐私数据、应用的电池使用以及应用的带宽使用。
[0090]应用属性136可以包括应用统计数据。应用统计数据可以指与应用有关的数字数据。例如,应用统计数据可以包括但不限于下载次数、下载率(如每月下载次数)、评级次数以及评论次数。应用属性136还可以包括从网站获得的信息,例如与应用关联的评论、与应用关联的文章(如维基文章)或其他信息。应用属性136还可以包括与应用有关的数字媒体, 例如图像(如图标和/或截图)。
[0091]图3B示出了用于名为“愤怒的小鸟”的应用(如游戏)的示例性应用记录140。应用记录140包括应用名称“愤怒的小鸟”142。应用记录140包括应用ID编号144。
[0092]应用记录140包括应用属性146。应用属性146包括应用开发者名称和应用种类的数据字段。应用属性146中包括的应用开发者可以是“路威娱乐(Rov1 Entertainment)”。 应用的种类可以是“游戏”。应用属性146还包括用于描述和评论的字段。描述可以包括描述 “愤怒的小鸟”的文本。在一些实施例中,描述可以由应用的开发者来提供。在一些实施例中,用于评论的字段可以包括来自用户评论的文本。[〇〇93]应用属性146还包括用于应用统计数据的字段,例如评级和下载次数。评级字段可以指示由用户为应用所给出的评级。例如,评级可以包括用户给予应用的评星数量(如〇至5 颗星)。下载次数可以指示应用已经被下载的总次数。
[0094]图2示出了被配置成基于查询128生成一组搜索结果129的示例性应用搜索模块 110。应用搜索模块110接收到的查询128是用于对应用数据商店108进行应用搜索的查询。 这里,查询128可以是基于从用户设备104接收到的搜索查询而生成的重构后的查询。此外, 或可选地,查询128可以是从用户设备104接收到的搜索查询。
[0095]查询分析模块122接收查询128。查询分析模块122可以对接收到的查询128进行各种分析操作。例如,查询分析模块122进行的分析操作可以包括但不限于查询令牌化、查询过滤、词干提取、同义词条列出以及停止词(stop word)删除。应用搜索模块110可以接收多个重构后的查询和/或由用户设备104生成的搜索查询。查询分析模块122可以单独分析(例如串行或并行地)多个重构后的查询中的每一个。此外,查询分析模块122可以分析由用户设备104生成的搜索查询。[〇〇96] 组生成模块124基于查询128来识别一组应用(即考虑组)。在一些实施例中,组生成模块124可以通过基于查询128的项和应用记录中的项之间的匹配度来识别应用记录,从而识别一组应用。例如,组生成模块124可以基于由查询分析模块122生成的令牌和应用记录中包括的文字之间的匹配度来识别应用数据商店108中的一组应用。在一些实施例中,应用的考虑组可以是应用记录列表。例如,考虑组可以是应用ID列表和/或应用名称列表。 [〇〇97]组处理模块126针对考虑组进行各种不同的处理操作,从而生成包括应用列表的一组搜索结果129。在一些实施方式中,组处理模块126可以针对考虑组包括的每个应用来生成结果评分,从而生成一组搜索结果129。在这些实施方式中,一组搜索结果129可以包括应用列表(如应用ID和/或应用名称),每个应用都与相应的结果评分相关联。在一些实施例中,搜索结果129可以包括来自考虑组中的所有应用。在另一些实施例中,搜索结果129可以包括考虑组的子集。例如,子集可以是具有最大结果评分的那些应用。[〇〇98]搜索结果129所传递的信息可以取决于组处理模块126如何计算结果评分。例如, 结果评分可以指示应用与搜索查询之间的相关性、应用在市场上的受欢迎度、应用的质量或应用的其他性质,这取决于组处理模块126用来给应用评分的那些参数。[〇〇99] 组处理模块126可以以多种不同方式来生成应用的结果评分。一般地,组处理模块 126可以基于一个或多个评分特征来生成应用的结果评分。评分特征可以与应用和/或查询 128相关联。应用评分特征可以包括与应用相关联的任何数据。例如,应用评分特征可以包括应用记录中包括的任何应用属性或与应用有关的任何额外的参数,例如指示应用受欢迎度的数据(如下载次数)和与应用相关联的评级(如评星数量)。查询评分特征可以包括与查询128相关联的任何数据。例如,查询评分特征可以包括但不限于查询中的文字数量、查询的受欢迎度和查询中文字的期望频率。应用-查询评分特征可以包括基于与应用和查询128 (如曾用于由组生成模块124来识别应用记录的查询)相关联的数据而生成的任何数据。例如,应用-查询评分特征可以包括但不限于指示查询的项与识别后的应用记录的项之间的匹配度的参数。组处理模块126可以基于应用评分特征、查询评分特征以及应用-查询评分特征中的至少一个来生成应用的结果评分。
[0100]组处理模块126可以基于在此列出的评分特征和/或没有明确列出的其他评分特征中的一个或多个来确定结果评分。在一些实施例中,组处理模块126可以包括设置成接收一个或多个评分特征的一个或多个机器学习模型(例如监督学习模型)。一个或多个机器学习模型可以基于应用评分特征、查询评分特征以及应用-查询评分特征中的至少一个来生成结果评分。例如,组处理模块126可以将查询128和每个应用配成对,并且计算每个对(如每个查询对或应用对)的特征向量。特征向量可以包括应用评分特征、查询评分特征以及应用-查询评分特征。然后,组处理模块126可以将特征向量输入至机器学习回归模型,从而计算结果评分,该结果评分可以用来针对查询128来排序搜索结果129中的应用。
[0101]结果评分可以以多种不同方式来使用。在一些实施例中,结果评分可以用于对在用户设备104上呈现的结果列表中的应用进行排序。在这些实施例中,以具有较低结果评分的应用相比,较高的结果评分可以表示应用与用户之间的相关性更大。在其中搜索结果129 在用户设备104上以列表形式显示的一些实施例中,与较高结果评分相关联的应用可以更靠近结果列表的顶端(如靠近屏幕的顶端)列出。在这些实施例中,具有较低结果评分的应用可以位于列表的下部(如位于屏幕外),并且可以通过由用户向下滚动用户设备104的屏幕来查看。[〇1〇2]在一些实施方式中,一组搜索结果129可以被发送至曾生成搜索结果129所基于的搜索查询的用户设备104。这里,搜索结果可以通过使用从用户设备104接收到的搜索查询以及其他重构后的查询来进行搜索而生成。可以在用户设备104上将搜索结果129格式化为与搜索查询匹配的应用列表。搜索结果129可以包括对应于各种应用的任何合适的信息。例如,由搜索系统102向用户设备104提供的搜索结果129可以被格式化为应用列表,例如,其包括应用名称、与应用相关联的图像(如标志、截图和/或视频)、下载应用的链接、应用的描述和评级、和/或其他信息。[〇1〇3]尽管在一些实施方式中搜索系统102可以将搜索结果129发送至用户设备104,但是搜索系统102可以以不同方式来使用搜索结果129。例如,搜索系统102可以将搜索结果 129作为依据来为用户生成广告。还可以预期的是,,在一些实施例中,搜索系统102可以选择向用户设备104发送的搜索结果129。例如,在一些实施例中,搜索系统102可以仅仅将最高排位的搜索结果发送至用户设备104。
[0104]图4示出了基于接收到的查询来进行搜索的示例性方法300。参考图2中的应用搜索模块110来对方法300进行描述。在块302中,查询分析模块122接收查询128。在一些实施例中,查询128可以是由图1中的查询重构模块116所生成的重构后的查询。在另一些实施例中,查询128可以是用户设备104之前生成的搜索查询。[〇1〇5] 在块304中,查询分析模块122分析查询128。在块306中,组生成模块124基于查询 128(如基于查询分析模块122的输出)来识别应用的考虑组(如一组应用记录)。在块308中, 组处理模块126处理应用的考虑组。例如,组处理模块126可以针对考虑组中的每个应用来生成结果评分。在块310中,组处理模块126生成一组搜索结果129。搜索结果129可以包括应用列表和关联的结果评分。然后,在一些实施例中,搜索系统102可以将搜索结果129发送至用户设备104.
[0106]应用搜索模块110可以使用从用户设备104接收到的搜索查询以及多个重构后的查询中的每一个来进行搜索(如串行或并行地)。应用搜索模块110可以针对每个重构后的查询执行方法300的块304至310。应用搜索模块110还可以针对从用户设备104接收到的搜索查询执行方法300的块304至310。因此,应用搜索模块110可以生成对应于多个搜索的多个搜索结果组。在一些实施例中,应用搜索模块11〇(如组处理模块126)可以将来自多个不同搜索的搜索结果组合成一组组合后的搜索结果,该组合后的搜索结果被发送至曾生成搜索查询的用户设备。
[0107]图5-7描述了生成重构后的查询以及基于重构后的查询来生成搜索结果。图5是包括如上所述的实体识别模块114、查询重构模块116和示例性应用搜索模块110的示例性搜索系统102的功能框图。应用搜索模块110可以如上所述那样工作。例如,应用搜索模块110 可以基于接收到的查询来生成一组搜索结果。图6A至图6C示出了可以包括在实体数据商店 112中的示例性实体记录。图7示出了基于重构后的查询来生成搜索结果的方法。
[0108]现参考图5,实体识别模块114从用户设备104接收搜索查询148。搜索查询148可以是由用户在用户设备104上输入的查询。搜索查询148可以包括由用户输入至用户设备104 的文本、数字和/或符号(如标点符号)。例如,用户可以使用触摸屏键盘、机械键盘和/或通过语音识别来将搜索查询148输入至在用户设备104上运行的应用的搜索栏(如搜索框)。搜索系统102生成的搜索结果150可以被发送回曾生成搜索查询148的用户设备104。
[0109]尽管在此示出并描述了接收包括文本的搜索查询148的搜索系统102(如实体识别模块114),但可以预期的是,搜索系统102(如实体识别模块114)可以在接收伴随搜索查询 148的其他数据。搜索查询148和伴随搜索查询148的其他数据可以被称作搜索包。在一些实施例中,搜索包可以包括与搜索查询148相关联的上下文信息,例如平台约束信息(如操作系统版本、设备类型、浏览器版本)、地理位置偏好、伙伴特定信息(如哪些业务正被使用以访问搜索系统102)以及其他信息。在用户设备104发送搜索查询的同时,用户设备104可以生成并发送查询包中包括的其他数据。
[0110]实体识别模块114响应于接收搜索查询148而识别实体数据商店112中的一个或多个实体记录。实体识别模块114可以以各种不同方式来识别实体记录。在一些实施方式中, 实体识别模块114可以通过检测接收到的搜索查询148的项(如一个或多个文字)和实体记录中包括的项之间的匹配度或近似匹配度来识别实体记录。例如,实体识别模块114可以通过检测接收到的搜索查询148的项和实体记录的实体名称、实体类型和实体信息的至少一个中包括的项之间的匹配度来识别实体记录。可以使用各种启发式算法和其他方法来进一步过滤并评分识别后的实体记录。
[0111]查询重构模块116可以使用一个或多个识别后的实体记录来生成一个或多个重构后的查询。一般地,查询重构模块116通过将来自识别后的实体记录的一个或多个项插入至接收到的搜索查询148中来生成重构后的查询。例如,查询重构模块116可以将来自实体名称、实体类型和实体信息的至少一个的一个或多个文字插入至接收到的搜索查询148中。在一些实施方式中,查询重构模块116可以将来自接收到的搜索查询148的一个或多个文字替换为从识别后的实体记录获得的一个或多个文字。应用搜索模块110可以针对每个重构后的查询生成搜索结果。
[0112]实体数据商店112包括可以被实体识别模块114和查询重构模块116使用以生成重构后的查询的多个实体记录。例如,实体识别模块114可以基于接收到的搜索查询148来识别实体数据商店112中包括的实体记录。然后,查询重构模块116可以使用来自实体数据商店112中的识别后的实体记录的项来生成重构后的查询。图6A至图6C示出并描述了实体记录的例子。图15A至图15C示出并描述了实体记录的其他例子。[〇113]图6A示出了可以包括在实体数据商店112中示例性实体记录152。一般地,实体记录152可以表示存储在实体数据商店112中的与实体(如名词)有关的数据。可以预期的是, 所示实体记录152中包括的数据能够以各种不同的方式来存储并访问。实体数据商店112包括与多个不同实体有关的数据。因此,实体数据商店112可以包括具有与实体记录152相似结构的多个实体记录。换句话说,实体数据商店112可以包括具有实体名称154、实体ID 156、实体类型158和实体信息160的多个实体记录。
[0114]实体名称可以包括一个或多个文字、数字、和/或符号(如标点符号)。在一些实施例中,实体名称15 4可以表示人、动物、地点、事物或想法。实体记录15 2包括表示实体记录 152的数据所属种类的实体类型158。例如,实体类型158表示实体名称154和实体信息160所属的种类。实体类型158可以包括一个或多个文字、数字和/或符号(如标点符号)。例如,实体类型158可以是名词。实体记录152包括实体标识156(即“实体ID 156”)。实体ID 156可以从实体数据商店112中包括的其他实体记录中识别实体记录152。例如,实体ID 156可以是唯一识别实体记录152的字母、数字和/或符号字符串(如标点符号)。
[0115] 图6B至图6C示出了不同的示例性实体记录162、164。实体记录162包括与名为“黑暗骑士崛起(The Dark Knight Rises)”的电影有关的数据。实体记录164包括与名为“黑暗骑士崛起(The Dark Knight Rises)”的漫画书有关的数据。实体记录162、164的实体名称166、168分别包括电影和漫画书的名称。在示例性实体名称166、168中,停止词“the”已经被删除。实体记录162的实体类型“电影”指示实体名称“黑暗骑士崛起”和实体信息170所属的种类。换句话说,实体记录162的实体类型“电影”指示实体记录162中包括的实体名称166和实体信息170与电影有关。实体记录164的实体类型“漫画书”指示实体名称“黑暗骑士崛起” 和实体信息172所属的种类。换句话说,实体记录164的实体类型“漫画书”指示实体记录164 所包括的实体名称168和实体信息172与漫画书有关。
[0116]实体记录162、164包括不同的实体ID 174、178。特别地,实体记录162、164包括实体10“10#1”和“10#2”。实体10“10#1”和“10#2”表示可以分别唯一识别实体记录162、164的不同实体ID。例如,“ID#1”和“ID#2”可以表示唯一识别实体数据商店112中的实体记录162、 164的不同的字母、数字和/或符号字符串。
[0117]再次参考图6A,实体记录152包括实体信息160。实体信息160表示实体152中除实体名称154和实体类型158之外的数据。一般地,实体信息160可以包括与实体名称154或实体类型158相关联的任何数据。在一些实施方式中,实体信息160中包括的数据可以是与实体名称154和实体类型158都相关联的数据。换句话说,实体信息160中包括的数据可以与实体名称154有关,并且可以被包括在由实体类型158所描述的种类中。
[0118]实体信息160可以包括不同种类的数据(如结构化、半结构化和/或非结构化数据)。实体信息160中的结构化数据可以指所定义的数据字段中包括的数据。实体信息160中的半结构化数据可以指广义上与数据字段相关联的数据,但是数据字段中的数据以非结构化方式来提供。实体信息160中的非结构化数据可以包括不与所定义的数据字段特别相关联的数据。
[0119]实体信息160可以包括与定义的数据字段相关联的数据。在一些实施例中,定义的数据字段可以是为实体记录152的实体类型158所定制的。例如,具有第一实体类型的实体记录可以包括与第一实体类型相关联的第一组数据字段。具有不同于第一实体类型的第二实体类型的实体记录可以包括与第二实体类型相关联的不同于第一组数据字段的第二组数据字段。在另一些实施例中,即便是当实体记录包括不同的实体类型时,数据商店112中包括的实体记录也可以具有相似的数据字段。
[0120]实体信息160可以包括与实体有关的任何类型的数据,其包括但不限于与实体、名称、日期、网站文本、评论文章、维基文章或其他类型的数据有关的统计数据或数量。例如, 如果实体类型158为“电影”,那么实体信息160可以包括用于演员、导演、制片人、影评和剧情简介的数据字段。再例如,如果实体类型158为“音乐”,那么实体信息160可以包括用于演唱者名称、歌曲名和歌曲时长的数据字段。再例如,如果实体类型158为“书籍”,那么实体信息160可以包括用于作者名称、出版商和出版日期的数据字段。
[0121]图6B至图6C示出了实体记录162、164中包括的实体信息170、172的例子。实体记录 162中包括的实体信息170与名为“黑暗骑士崛起”的电影有关。实体记录164中包括的实体信息172与名为“黑暗骑士崛起”的漫画书有关。实体信息170包括与电影有关的数据字段, 例如演员列表、导演、影评以及剧情简介。实体信息172包括与漫画书有关的字段,例如一个或多个作者、一个或多个画家、出版日期以及漫画评论。图6B至图6C的实体信息170、172中的数据字段只是实体信息中可以包括的示例性数据字段。可以预期的是,实体信息170、172 可以包括图6B至图6C中未示出的其他数据字段。在一些实施例中,实体信息170、172可以不包括图6B至图6C中示出的某些或全部数据字段。
[0122]实体记录162、164的实体信息170、172中包括的不同数据字段举例说明了不同的实体记录可以包括不同的数据字段。实体记录162、164的实体信息170、172中包括的不同数据字段举例说明了实体记录中包括的数据字段可以与实体记录的实体类型有关。例如,具有实体类型“电影”的实体记录162可以包括与电影有关的数据字段,例如演员列表和导演。 相似地,具有实体类型“漫画书”的实体记录164可以包括与漫画书有关的数据字段,例如作者和画家。特定于实体类型的一些数据字段和具有不同实体类型的实体记录中相应的字段可以具有不同的含义。例如,用于演员列表的数据字段和具有实体类型“漫画书”的实体记录中相应的字段可以具有不同的含义。
[0123]如上参考图5所述,实体识别模块114可以通过检测接收到的搜索查询148的项与实体记录的实体名称154、实体类型158和实体信息160的至少一个中包括的项之间的匹配度来识别实体记录。因此,当接收到的搜索查询148包括实体记录162、164中的项时,实体识别模块114可以识别实体记录162、164。例如,实体识别模块114可以响应于包括文字“黑暗骑士崛起”的搜索查询来识别实体记录162、164。在此实施例中,实体识别模块114可以基于搜索查询中的文字与实体名称166、168中的文字之间的匹配度来识别实体记录162、164。同样地,实体识别模块114可以通过识别实体记录162、164的实体信息170、172的“黑暗骑士崛起”中的一个或多个文字来识别实体记录162、164。
[0124]再例如,如果搜索查询148包括文字“电影”,那么实体识别模块114可以识别包括实体类型“电影”的实体记录162。在此实施例中,实体识别模块114不可以识别包括实体类型“漫画书”的实体记录164,除非实体记录164的实体信息172同样包括文字“电影”。再例如,如果搜索查询148包括演员名称“克里斯汀?贝尔”,那么实体识别模块114可以识别演员列表中包括“克里斯汀?贝尔”的实体记录162。在此实施例中,实体识别模块114不可以识别具有实体类型“漫画书”的实体记录164,除非实体记录164的实体信息172同样包括演员名称“克里斯汀?贝尔”。
[0125]再例如,当搜索查询148不包括实体记录162、164的任何文字时,实体识别模块114 不可以识别实体记录162、164中的任何一个。在此实施例中,实体识别模块114可以识别实体数据商店112中包括的其他实体记录。如果实体识别模块114没有识别出其他的实体记录,那么查询重构模块116可以避免生成重构后的查询。在这些实施例中,应用搜索模块110 可以使用接收到的搜索查询148来生成搜索结果150。
[0126]在其中实体识别模块114识别一个或多个实体记录的一些实施例中,查询重构模块116可以针对每个识别后的实体记录来生成一个或多个重构后的查询。在其中实体识别模块114识别单个实体记录的实施例中,查询重构模块116可以基于该识别后的实体记录和接收到的搜索查询148来生成一个或多个重构后的查询。应用搜索模块110可以针对查询重构模块116生成的每个重构后的查询进行搜索。在其中查询重构模块116生成单个重构后的查询的一些实施例中,应用搜索模块110可以使用该重构后的查询来进行单次搜索。此外, 应用搜索模块110可以使用接收到的查询148来进行搜索。然后,应用搜索模块110可以将两组搜索结果组合成一组搜索结果,该一组搜索结果可以被发送至曾生成搜索查询148的用户设备104。
[0127]图7示出了基于重构后的查询来生成搜索结果的示例性方法400。参考图5中的实体识别模块114、查询重构模块116和应用搜索模块110来描述方法400。在块402中,实体识别模块114接收搜索查询148。搜索查询148可以是之前由用户设备104所生成的搜索查询。
[0128]在块404中,实体识别模块114基于接收到的搜索查询148来识别实体数据商店112 中的一组实体记录。该组实体记录包括一个或多个实体记录。在块406中,查询重构模块116 针对每个识别后的实体记录来生成一个或多个重构后的查询。在块408中,应用搜索模块 110针对每个重构后的查询来进行搜索。在块410中,应用搜索模块110基于使用重构后的查询进行的搜索来生成一组搜索结果。在一些实施例中,应用搜索模块110可以使用接收到的查询148来进行搜索。
[0129]图8示出了包括示例性实体识别模块114和示例性查询重构模块180的功能框图。 一般地,图8中的实体识别模块114和查询重构模块180通过将来自识别后的实体记录的项 (如文字、数字、符号)插入至接收到的搜索查询148中来生成重构后的查询182。图9A至图14 示出了用于将来自识别后的实体记录的项插入至接收到的搜索查询148中的不同示例性方法。
[0130]如上所述,实体识别模块114基于接收到的搜索查询148来识别实体记录。实体识别模块114将识别后的实体记录传输至查询重构模块180。查询重构模块180包括使用来自识别后的实体记录的项来生成重构后的查询182的实体获取模块184和重构模块186。实体获取模块184可以从识别后的实体记录获取项。重构模块186可以通过将获取的项插入至搜索查询148中来生成重构后的查询182。在一些实施例中,重构模块186可以将来自搜索查询 148的项替换为来自识别后的实体记录的项。实体获取模块184可以设置成从识别后的实体记录获取任何项。因此,重构模块186可以使用来自识别后的记录的任何项来生成重构后的查询182。
[0131]在一些实施方式中,查询重构模块180可以通过将实体类型插入至搜索查询148中来生成重构后的查询182。在这些实施方式中,实体获取模块184可以识别出识别后的实体记录中的实体类型。然后,重构模块186可以通过将识别后的实体类型插入至搜索查询148 中来生成重构后的查询182。例如,重构模块186可以将搜索查询148的某些项替换为识别后的实体类型。图9A至图10示出并描述了其中查询重构模块180被设置成将搜索查询148的项替换为识别后的实体类型的例子。
[0132]在一些实施方式中,查询重构模块180可以被设置成通过将实体名称插入至搜索查询148中来生成重构后的查询182。在这些实施方式中,实体获取模块184可以识别出识别后的实体记录的实体名称。然后,重构模块186可以通过将识别后的实体名称插入至搜索查询148中来生成重构后的查询182。例如,重构模块186可以将搜索查询148的某些项替换为识别后的实体名称。图11A至图12示出并描述了其中查询重构模块180被设置成将搜索查询 148的项替换为识别后的实体名称的例子。
[0133]在一些实施方式中,查询重构模块180可以被设置成通过将来自实体信息的项插入至搜索查询148来生成重构后的查询182。在这些实施方式中,实体获取模块184可以识别来自识别后的实体记录的实体信息的项。然后,重构模块186可以通过将来自实体信息的识别后的项插入至搜索查询148来生成重构后的查询182。例如,重构模块186可以将搜索查询 148的某些项替换为来自实体信息的识别后的项。
[0134]在一些实施方式中,查询重构模块180可以被设置成通过将实体名称、实体类型和来自实体信息的项的任意组合插入至接收到的搜索查询148中来生成重构后的查询182。在这些实施方式中,实体获取模块184可以识别来自实体名称、实体类型和实体信息的任意组合的项。然后,重构模块186可以使用识别后的项来生成重构后的查询182。在一个实施例中,实体获取模块184可以识别来自实体信息和实体类型的项。在此实施例中,重构模块186 可以将来自实体信息和实体类型的识别后的项插入至搜索查询148中。例如,重构模块186 可以将搜索查询148的项替换为来自实体信息和识别后的实体类型的项。图13A至图14示出并描述了其中查询重构模块180被设置成将搜索查询148的项替换为来自实体信息和识别后的实体类型的项的例子。
[0135]尽管图8的功能框图示出了针对接收到的搜索查询148生成单个重构后的查询 182,但可以预期的是,针对接收到的搜索查询148可以生成多个重构后的查询。在一个实施例中,实体识别模块114可以基于接收到的搜索查询148来识别单个实体记录。在此实施例中,重构模块186可以基于该识别后的实体记录中包括的项来生成多个重构后的查询。例如,实体获取模块184可以获取实体名称和实体类型,然后重构模块186可以分别使用实体名称和实体类型来生成第一重构后的查询和第二重构后的查询。再例如,实体识别模块114 可以识别多个实体记录。在此实施例中,重构模块186可以针对每个识别后的实体记录来生成一个或多个重构后的查询。
[0136]图9A至图14描述了用于基于接收到的搜索查询148和来自识别后的实体记录的项来生成重构后的查询的各种不同的方式。图9A至图10描述了使用识别后的实体记录的实体类型来生成重构后的查询。图11A至图12描述了使用识别后的实体记录的实体名称来生成重构后的查询。图13A至图14描述了使用来自识别后的实体记录的实体信息和实体类型的项来生成重构后的查询。尽管如上所述,图9A、图11A和图13A的功能框图举例说明了针对接收到的搜索查询148来生成单个重构后的查询,但也可以针对接收到的搜索查询148来生成多个重构后的查询。现将按顺序根据图9A至图14对重构后的查询的生成进行描述。
[0137]图9A示出了通过将识别后的实体记录的实体类型插入至接收到的搜索查询148中来生成重构后的查询194的示例性实体识别模块190和示例性查询重构模块192。图9B示出了可以根据图9A的功能框图来生成的示例性搜索查询和示例性重构后的查询。图10示出了使用识别后的实体记录的实体类型来生成重构后的查询的示例性方法。
[0138]现参考图9A,实体识别模块190基于接收到的搜索查询148来识别实体记录。查询重构模块192包括使用来自识别后的实体记录的项来生成重构后的查询194的实体获取模块196和重构模块198。例如,实体获取模块196和重构模块198可以通过将识别后的实体记录的实体类型插入到搜索查询148中来生成重构后的查询194。
[0139]实体识别模块190基于搜索查询148来识别实体记录。实体识别模块190还确定搜索查询148的一个或多个文字对应于识别后的实体记录的实体名称。实体获取模块196识别识别后的实体记录的实体类型。然后,重构模块198将搜索查询148对应于实体名称的文字替换为由实体获取模块196所识别的实体类型。图9B示出了实体识别模块190和查询重构模块192如何基于接收到的搜索查询148来生成多个重构后的查询。现参考图9B描述响应于搜索查询“观看‘黑暗骑士崛起’”时的实体识别模块190和查询重构模块192的操作。[〇14〇]在图9B中,实体识别模块190接收搜索查询“观看‘黑暗骑士崛起’”。实体识别模块 190识别对应于搜索查询“观看‘黑暗骑士崛起’”的三个不同的实体记录。例如,实体识别模块190识别具有实体类型“电影”的名为“黑暗骑士崛起”的实体记录、具有实体类型“漫画书”的名为“黑暗骑士崛起”的实体记录、以及具有实体类型“原声音乐”的名为“黑暗骑士崛起”的实体记录。
[0141]重构模块198针对每个识别后的实体记录来生成重构后的查询。在图9B的实施例中,实体识别模块190确定识别后的实体记录的名称包括在搜索查询中。重构模块198接收识别后的实体记录以及实体记录的名称包括在搜索查询中的确定结果。重构模块198将搜索查询中包括的实体名称替换为识别后的实体记录的实体类型。可以针对每个识别后的实体重复此过程。例如,重构模块198通过将搜索查询中的文字“黑暗骑士崛起”替换为名为 “黑暗骑士崛起”的实体记录的实体类型“电影”来生成重构后的查询“观看电影”。相似地, 重构模块198通过将搜索查询中的文字“黑暗骑士崛起”替换为名为“黑暗骑士崛起”的实体记录的实体类型“漫画书”来生成重构后的查询“看漫画书”。重构模块198还通过将搜索查询中的文字“黑暗骑士崛起”替换为名为“黑暗骑士崛起”的实体记录的实体类型“原声音乐”来生成第三重构后的查询“观看原声音乐”。在图9B的实施例中,停止词“the”已经从实体名称和重构后的查询中删除。
[0142]应用搜索模块110针对三个重构后的查询中的每一个都进行搜索。因此,应用搜索模块110针对重构后的查询“观看电影”、“看漫画书”和“观看原声音乐”生成一组搜索结果。 应用搜索模块110可以将每个重构后的查询的多组搜索结果组合成一组搜索结果。搜索结果包括根据使用重构后的查询进行的搜索而生成的应用列表和相应的结果评分。在一些实施例中,应用搜索模块110还可以使用搜索查询“观看‘黑暗骑士崛起’”来进行搜索。在这些实施例中,应用搜索模块110可以将使用搜索查询所生成的搜索结果和使用重构后的查询所生成的结果组合在一起。
[0143]图10示出了用于使用识别后的实体记录的实体类型来生成重构后的查询的方法 500。参考图9A至图9B中的实体识别模块190、查询重构模块192和应用搜索模块110对方法 500进行描述。在块502中,实体识别模块190接收搜索查询148。搜索查询148可以是之前由用户设备104所生成的搜索查询。
[0144]在块504中,实体识别模块190识别实体数据商店112中的实体记录。在块506中,实体获取模块196识别出识别后的实体记录的实体类型。在块508中,重构模块198通过将识别后的实体类型插入至接收到的搜索查询148中来生成重构后的查询194。例如,重构模块198 可以通过将搜索查询的文字(例如搜索查询中的实体名称)替换为识别后的实体记录的实体类型来生成重构后的查询。
[0145]在块510中,应用搜索模块110使用重构后的查询来进行应用数据商店108的搜索。 在块512中,应用搜索模块110针对重构后的查询来生成一组搜索结果。尽管方法500描述了基于单个实体记录的识别来生成单个重构后的查询,但可以预期的是,方法500的部分或全部也可以重复进行,以便从使用一个或多个识别后的实体记录来生成一个或多个重构后的查询。
[0146]图11A示出了通过将识别后的实体记录的实体名称插入至接收到的搜索查询148 中来生成重构后的查询204的示例性实体识别模块200和示例性的查询重构模块202。图11B 示出了根据图11A的功能框图所生成的示例性搜索查询和示例性重构后的查询。图12示出了使用实体名称来生成重构后的查询的示例性方法。
[0147]现参考图11A,实体识别模块200基于接收到的搜索查询148来识别实体记录。查询重构模块202包括通过将识别后的实体记录的实体名称插入至搜索查询148中来生成重构后的查询204的实体获取模块206和重构模块208。现将描述其中通过将搜索查询148的文字替换为实体名称来生成重构后的查询的实例。
[0148]实体识别模块200基于搜索查询148来识别实体记录。实体识别模块200还识别对应于识别后的实体记录的搜索查询148的一个或多个文字。例如,对应于识别后的实体记录的一个或多个文字可以是包括在识别后的实体记录中的文字。实体获取模块206识别出识别后的实体记录的实体名称。然后,重构模块208将对应于识别后的实体记录的搜索查询 148的文字替换为识别后的实体名称,从而生成重构后的查询204。图11B示出了实体识别模块200和查询重构模块202如何基于接收到的搜索查询148来生成多个重构后的查询。现将描述响应于搜索查询“观看超级英雄电影”时实体识别模块200和查询重构模块202的操作。
[0149]在图11B中,实体识别模块200接收搜索查询“观看超级英雄电影”。实体识别模块 200识别对应于搜索查询“观看超级英雄电影”的三个不同的实体记录。例如,实体识别模块 200识别名为“黑暗骑士崛起”的实体记录、名为“蜘蛛侠”的实体记录和名为“超人”的实体记录。这些实体记录可以具有实体类型“电影”。
[0150]重构模块208针对每个识别后的实体记录来生成重构后的查询。在图11B的实施例中,实体识别模块200确定文字“超级英雄电影”对应于识别后的实体记录。例如,实体识别模块200可以确定识别后的实体记录在实体类型字段和/或实体信息(如电影种类字段、影评文本等等)中包括文字“超级英雄”和“电影”。重构模块208将搜索查询中包括的文字“超级英雄电影”替换为实体记录的实体名称,从而生成重构后的查询。参考图11B,重构模块 208通过将搜索查询中的文字“超级英雄电影”替换为实体名称“黑暗骑士崛起”来生成重构后的查询“观看‘黑暗骑士崛起’”。相似地,重构模块208通过将搜索查询中的文字“超级英雄电影”替换为实体名称“蜘蛛侠”来生成重构后的查询“观看‘蜘蛛侠’”。重构模块208还通过将搜索查询中的文字“超级英雄电影”替换为实体名称“超人”来生成重构后的查询“观看 ‘超人’”。在图11B的实施例中,停止词“a”已经从重构后的查询中删除。
[0151]应用搜索模块110针对三个重构后的查询的每一个都进行搜索。因此,应用搜索模块110针对重构后的查询“观看‘黑暗骑士崛起“观看‘蜘蛛侠’”和“观看‘超人’”来生成一组搜索结果。应用搜索模块110可以将每个重构后的查询的多组搜索结果组合成一组搜索结果。搜索结果可以包括根据使用重构后的查询进行的搜索而生成的应用列表和相应的搜索评分。在一些实施例中,应用搜索模块110还可以使用搜索查询“观看超级英雄电影”来进行搜索。在这些实施例中,应用搜索模块110可以将使用搜索查询所生成的搜索结果和使用重构后的查询生成的结果组合在一起。
[0152]图12示出了使用识别后的实体记录的实体名称来生成重构后的查询的方法600。 参考图11A至图11B中的实体识别模块200、查询重构模块202和应用搜索模块110来描述方法600。在块602中,实体识别模块200接收搜索查询148。搜索查询148可以是之前由用户设备104生成的搜索查询。
[0153]在块604中,实体识别模块200识别实体数据商店112中的实体记录。在块606中,实体获取模块206识别出识别后的实体记录的实体名称。在块608中,重构模块208通过将识别后的实体名称插入至接收到的搜索查询中来生成重构后的查询。例如,重构模块208可以通过将搜索查询的文字(如对应于识别后的实体记录的文字)替换为识别后的实体记录的实体名称来生成重构后的查询。
[0154]在块610中,应用搜索模块110使用重构后的查询来进行应用数据商店108的搜索。 在块612中,应用搜索模块110针对重构后的查询生成一组搜索结果。尽管方法600描述了基于单个实体记录的识别来生成单个重构后的查询,但可以预期的是,也可以重复进行方法 600的部分或全部,从而使用一个或多个识别后的实体记录来生成一个或多个重构后的查询。
[0155]图13A示出了通过将来自识别后的实体记录的实体信息的项插入至接收到的搜索查询148中来生成重构的查询214的示例性实体识别模块210和示例性查询重构模块212。图 13B至图13C示出了根据图13A的功能框图生成的示例性搜索查询和示例性重构后的查询。 图14示出了使用来自识别后的实体记录的实体信息的项来生成重构后的查询的示例性方法。
[0156]现参考图13A,查询重构模块212基于接收到的搜索查询148来识别实体记录。查询重构模块212包括通过将来自识别后的实体记录的实体信息的文字插入至搜索查询148中来生成重构后的查询214的实体获取模块216和重构模块218。实体获取模块216从识别后的实体记录的实体信息中选择文字。重构模块218通过将所选择的文字插入至搜索查询148来生成重构后的查询214。在一些实施例中,重构模块218可以将来自搜索查询148的文字替换为选自实体信息的文字。现将描述其中通过将来自搜索查询的文字替换为来自实体信息的文字来生成重构后的查询的实例。
[0157]实体识别模块210识别对应于识别后的实体记录的搜索查询148中的文字。例如, 搜索查询148的文字可以对应于识别后的实体记录的实体名称。实体获取模块216从识别后的实体记录的实体信息中选择文字。重构模块218可以将对应于识别后的实体记录的搜索查询148的文字替换为从实体信息中所选择的文字。现将参考图13B至图13C描述响应于搜索查询“观看‘黑暗骑士崛起’”和“观看‘狮子王’”时实体识别模块210和查询重构模块212 的操作。
[0158]图13B示出了实体识别模块210和查询重构模块212如何基于接收到的搜索查询 148来生成多个重构后的查询的实施例。图13B特别地示出了其中实体识别模块210和查询重构模块212被设置成将演员名称和实体类型插入至搜索查询中以取代电影名称的实例。 换句话说,实体识别模块210和查询重构模块212被设置成通过识别搜索查询中的电影实体记录并且然后将搜索查询中的实体名称替换为来自电影的演员来生成重构后的查询。重构模块218被设置成将实体类型“电影”与演员名称一起进行插入。演员名称的插入以取代识别后的电影名称仅仅是将来自实体信息的项插入至搜索查询中的一个例子。可以预期的是,实体信息的项可以被用来以不同于图13B中所示的方式来生成重构后的查询。
[0159]在图13B中,实体识别模块210接收搜索查询“观看‘黑暗骑士崛起’”。实体识别模块210识别对应于搜索查询“观看‘黑暗骑士崛起’”的单个实体记录。特别地,识别后的实体记录可以是名为“黑暗骑士崛起”并具有实体类型“电影”的实体记录。
[0160]重构模块218针对识别后的实体记录来生成重构后的查询。在图13B的实施例中, 实体识别模块210确定文字“黑暗骑士崛起”对应于识别后的实体记录的实体名称。重构模块218将搜索查询中包括的文字“黑暗骑士崛起”替换为来自电影“黑暗骑士崛起”的演员名称,从而生成重构后的查询。重构模块218可以从名为“黑暗骑士崛起”的识别后的电影实体记录的实体信息中的字段(如预定义字段)获得演员名称。参考图13B,重构模块218通过将搜索查询中的文字“黑暗骑士崛起”替换为演员名称“克里斯汀?贝尔”和实体类型“电影” 来生成重构后的查询“观看克里斯汀?贝尔的电影”。相似地,重构模块218通过将搜索查询中的文字“黑暗骑士崛起”替换为演员名称“加里?奥德曼”和实体类型“电影”来生成重构后的查询“观看加里?奥德曼的电影”。重构模块218还通过将搜索查询中的文字“黑暗骑士崛起”替换为演员名称“摩根?弗里曼”和实体类型“电影”来生成重构后的查询“观看摩根?弗里曼的电影”。
[0161]应用搜索模块110针对三个重构后的查询的每一个来进行搜索。因此,应用搜索模块110针对重构后的查询“观看克里斯汀?贝尔的电影”、“观看加里?奥德曼的电影”和“观看摩根?弗里曼的电影”来生成一组搜索结果。应用搜索模块110可以将每个重构后的查询的多组搜索结果组合成一组搜索结果。搜索结果可以包括根据使用重构后的查询进行的搜索而生成的应用列表和相应的结果评分。在一些实施例中,应用搜索模块110还可以使用搜索查询“观看‘黑暗骑士崛起’”来进行搜索。在这些实施例中,应用搜索模块110可以将使用搜索查询生成的搜索结果和使用重构后的查询生成的结果组合在一起。
[0162]图13C示出了实体识别模块210和查询重构模块212如何基于接收到的搜索查询 148来生成多个重构后的查询的另一个实施例。图13C示出了其中实体识别模块210和查询重构模块212被设置成将制片公司名称插入至搜索查询以取代电影名称的一个实例。图13C 还示出了其中实体识别模块210和查询重构模块212设置成将电影的描述插入至搜索查询中以取代电影名称的一个实例。可以预期的是,来自实体信息的项可以用于以不同于图13B 至图13C所示的方式来生成重构后的查询。
[0163]在图13C中,实体识别模块210接收搜索查询“观看‘狮子王’”。实体识别模块210识别对应于搜索查询“观看‘狮子王’”的单个实体记录。特别地,识别后的实体记录可以是名为“狮子王”并具有实体类型“电影”的实体记录。
[0164]重构模块218针对识别后的实体记录来生成重构后的查询。在图13C的实施例中, 实体识别模块210确定文字“狮子王”对应于识别后的实体记录的实体名称。重构模块218将搜索查询中包括的文字“狮子王”替换为制片公司“迪士尼”的名称和实体类型“电影”,从而生成重构后的查询“观看迪士尼的电影”。重构模块218可以从名为“狮子王”的识别后的电影实体记录的实体信息中的字段(如预定义字段)来获取制片公司名称。参考图13C,重构模块218还通过将搜索查询中的文字“狮子王”替换为描述“动画音乐”来生成重构后的查询 “观看动画音乐”,该描述“动画音乐”可以是实体记录“狮子王”的实体信息中包括的描述。
[0165]应用搜索模块110针对每个重构后的查询来进行搜索。因此,应用搜索模块110针对重构后的查询“观看迪士尼的电影”和“观看动画音乐”来生成一组搜索结果。应用搜索模块110可以将每个重构后的查询的多组搜索结果组合成一组搜索结果。搜索结果可以包括根据使用重构后的查询进行的搜索而生成的应用列表和相应的结果评分。在一些实施例中,应用搜索模块110还可以使用搜索查询“观看‘狮子王’”来进行搜索。在这些实施例中, 应用搜索模块110可以将使用搜索查询生成的搜索结果和使用重构后的查询生成的结果组合在一起。
[0166]图14示出了使用来自识别后的实体记录的实体信息的一个或多个项来生成重构后的查询的方法700。参考图13A至图13C的实体识别模块210、查询重构模块212和应用搜索模块110来描述方法700。在块702中,实体识别模块210接收搜索查询148。搜索查询148可以是之前由用户设备104所生成的搜索查询。
[0167]在块704中,实体识别模块210识别实体数据商店112中的实体记录。在块706中,实体获取模块216从识别后的实体记录的实体信息中选择一个或多个项。在块708中,重构模块218通过将所选择的一个或多个项插入至接收到的搜索查询148中来生成重构后的查询 214。例如,重构模块218可以通过将搜索查询148的文字(例如搜索查询中的实体名称)替换为所选择的一个或多个项来生成重构后的查询214。
[0168]在块710中,应用搜索模块110使用重构后的查询来进行应用数据商店108的搜索。 在块712中,应用搜索模块110针对重构后的查询生成一组搜索结果。尽管方法700描述了基于单个实体记录的识别来生成单个重构后的查询,但可以预期的是,方法700的部分或全部可以重复进行,从而使用一个或多个识别后的实体记录来生成一个或多个重构后的查询。
[0169]如上所述,一组搜索结果可以包括应用列表,每个应用都与结果评分相关联。结果评分可以以各种不同的方式生成。在一些实施例中,搜索系统102可以基于包括在实体记录中和/或在接收到搜索查询后确定的实体相关值来生成结果评分。在此描述的实体相关值包括实体质量评分和查询-实体符合度评分。在此参考图15A和图16A至图17描述使用实体相关值来加权搜索结果。
[0170]现参考图15A,如图6A中的实体记录152那样,示例性实体记录220包括实体名称 222、实体ID 224、实体类型226和实体信息228。实体记录220还包括实体质量评分230。在一些实施方式中,搜索系统102可以基于实体质量评分230来确定与应用相关联的结果评分。 例如,如参考图16A至图17所描述的那样,实体质量评分230可以是由搜索系统102所使用的用于加权应用的初始评分的数字。
[0171]在一些实施方式中,实体质量评分230可以指示实体记录220描述的实体的相对受欢迎度。例如,如果两个不同的实体记录都与歌曲有关,那么和与不那么受欢迎的歌曲相关联的实体记录相比,用于更受欢迎的歌曲的实体记录(如下载次数更多的歌曲)可以包括更高的实体质量评分。较高的实体质量评分倾向于产生较高的结果评分。搜索结果中与较高的结果评分相关联的应用在搜索结果中排序更高。在一些实施方式中,实体质量评分230可以是0.0至1.0。
[0172]实体质量评分230可以是基于实体在种类(如实体类型)中的排位。可以与种类中的其他实体无关地生成实体质量评分230。搜索系统102可以针对不同类型的实体以不同方式来生成实体质量评分230。现将描述搜索系统102给予实体质量评分的不同方式。与城市相关联的实体记录可以基于城市的人口来给予实体质量评分。例如,与具有更多人口的城市相关联的实体记录可以获得更高的实体质量评分(如更靠近1.0)。与饭店相关联的实体记录可以基于与饭店相关联的评论评级来给予实体质量评分。例如,与获得更好评级(如在饭店评论网站上)的饭店相关联的实体记录可以被给予更高的实体质量评分。与产品(如购物网站上的产品)相关联的实体记录可以基于与产品相关联的销售数量来给予实体质量评分。与公众人物相关联的实体记录可以基于其名字在不同网站(如新闻网站)上提及的次数来给予实体质量评分。
[0173]搜索系统102还可以使用查询-实体符合度评分来加权结果评分。查询-实体符合度评分可以是指示接收到的搜索查询的文本与之前基于接收到的搜索查询所识别的实体记录中包括的文本之间的匹配度的数字。搜索系统1〇2(如实体识别模块114)可以在识别一个或多个实体记录后生成查询-实体符合度评分。在其中接收到的搜索查询的文本与实体记录的文本的更匹配的情况下,查询-实体符合度评分更高。换句话说,当搜索查询中的文字与识别后的实体记录中的文字的匹配度更高时,查询-实体符合度评分更高。较高的查询-实体符合度评分倾向于产生更高的结果评分。
[0174]搜索系统102可以使用查询-实体符合度评分和/或实体质量评分230来确定与应用相关联的结果评分。因此,与应用相关联的结果评分可以基于查询-实体符合度评分和/ 或实体质量评分230。在一些实施方式中,搜索系统102可以基于查询-实体符合度评分和/ 或实体质量评分两者来确定应用的结果评分。在一些实施方式中,搜索系统102可以基于查询-实体符合度评分而不考虑实体质量评分来确定应用的结果评分。在另一些实施方式中, 搜索系统102可以基于实体质量评分而不考虑查询-实体符合度评分来确定应用的结果评分。在另一些实施方式中,在确定与应用相关联的结果评分时,搜索系统102不考虑查询-实体符合度评分和实体质量评分中的任何一个。
[0175]图16A至图16B示出了使用查询-实体符合度评分和实体质量评分来加权应用搜索结果的搜索系统102的一个实施例。图16A示出了重构后的查询和搜索结果如何与实体相关值相关联。图16B示出了基于查询-实体符合度评分和实体质量评分来确定结果评分的示例性应用搜索模块。
[0176]在图16A中,搜索系统102接收搜索查询“观看‘黑暗骑士崛起’”。如上参考图9B所述,实体识别模块190可以基于搜索查询来识别三个独立的实体记录。在图16A的实施例中, 如参考图9B所描述的那样,实体识别模块190识别对应于搜索查询“观看‘黑暗骑士崛起’” 的三个不同的实体记录。具体地,实体识别模块190识别用于“电影”、“漫画书”和“原声音乐”的实体记录。重构模块198针对每个识别后的实体记录、通过将来自接收到的搜索查询的项替换为识别后的实体记录的实体类型来生成重构后的查询。
[0177]图16A中三个重构后的查询的每一个都与两个实体相关值相关联。具体地,三个重构后的查询的每一个都与一个不同的实体质量评分(如Q1、Q2、Q3)以及一个不同的查询-实体符合度评分(如Q-E1、Q_E2、Q-E3)相关联。与每个重构后的查询相关联的实体质量评分 (Q1、Q2、Q3)可以是包括在之前用于生成重构后的查询的实体记录中的实体质量评分。例如,针对重构后的查询“观看电影”,实体质量评分Q1可以是包括在具有实体类型“电影”的、 名为“黑暗骑士崛起”的实体记录中的质量评分。与每个重构后的查询相关联的查询-实体符合度评分(Q-E1、Q-E2、Q-E3)可以是指示来自搜索查询的项与用于生成重构后的查询的实体记录的项之间的匹配度的数字。例如,针对重构后的查询“观看电影”,查询-实体符合度评分Q-E1可以是指示搜索查询“观看‘黑暗骑士崛起’”和具有实体类型“电影”、名为“黑暗骑士崛起”的实体记录的项之间的匹配度的数字。[〇178]应用搜索模块232可以使用每个重构后的查询来进行搜索。应用搜索模块232可以基于实体质量评分(Q1、Q2、Q3)和查询-实体符合度评分(Q-E1、Q-E2、Q-E3)来生成结果评分。例如,应用搜索模块232可以针对包括应用列表和基于实体质量评分Q1和查询-实体符合度评分Q-E1的相应的结果评分的查询“观看电影”来生成搜索结果。换句话说,基于查询 “观看电影”所生成的结果评分可以通过实体质量评分Q1和查询-实体符合度评分Q-E1来加权。应用搜索模块232可以针对查询“观看漫画书”和“观看原声音乐”以相似的方式来生成搜索结果。
[0179]图16B示出了使用图16A中描述的实体质量评分Q1和查询-实体符合度评分Q-E1来生成重构后的查询的一组搜索结果的实例性应用搜索模块232。在图16B中,应用搜索模块 232接收重构后的查询“观看电影”、实体质量评分Q1和查询-实体符合度评分Q-E1。查询分析模块122如上面所述的那样分析查询。组生成模块123如上面所述的那样识别包括Appl、 App2和App3的应用的考虑组。[〇18〇]示例性的组处理模块234使用接收到的实体相关值来处理考虑组。组处理模块234 包括应用评分模块236和示例性加权模块238。应用评分模块236针对应用Appl、App2和App3 中的每一个来生成初始评分。如图16B所示,初始评分为评分1、评分2和评分3。应用评分模块236可以按照图2所描述的方式生成初始评分。例如,应用评分模块236可以基于一个或多个评分特征来生成初始评分,例如应用评分特征、查询评分特征和应用-查询评分特征。在一些实施例中,应用评分模块236可以包括设置成接收一个或多个评分特征的一个或多个机器学习模型。
[0181]加权模块238基于初始评分、实体质量评分Q1和查询-实体符合度评分Q-E1来生成结果评分。例如,加权模块238可以将每个初始评分与实体质量评分Q1和查询-实体符合度评分Q-E1相乘,从而生成搜索结果。针对Appl的初始评分(即评分1),加权模块238可以将 Appl的初始评分与实体质量评分Q1和查询-实体符合度评分Q-E1相乘。如图16B所示,与 Appl、App2和App3相关联的结果评分分别为结果评分1、结果评分2和结果评分3。尽管如图 16B所示实体质量评分和查询-实体符合度评分可以与初始评分相乘以生成结果评分,但在其他一些实施例中,实体质量评分和查询-实体符合度评分还可用于以任何适合的方式调整初始评分,从而反映实体质量以及实体和查询之间的符合度,例如通过将实体质量评分和查询-系统评分与初始评分相加。
[0182]图17示出了用于使用实体相关值来生成结果评分的示例性方法800。参考图5的实体识别模块114和查询重构模块116以及图16B的应用搜索模块232来描述方法800。在块802 中,实体识别模块114接收搜索查询148。搜索查询148可以之前由用户设备104所生成的搜索查询。
[0183]在块804中,实体识别模块114识别实体数据商店112中的实体记录。在块806中,查询重构模块116基于识别后的实体记录和搜索查询148来生成重构后的查询。在块808中,实体识别模块114确定与识别后的实体记录相关联的实体质量评分。实体识别模块114还可以确定查询-实体符合度评分。
[0184]在块810中,查询分析模块122对重构后的查询进行分析,并且组生成模块124基于重构后的查询来生成应用的考虑组。在块812中,应用评分模块236针对考虑组中的应用生成初始评分。在块814中,加权模块238基于初始评分、实体质量评分和查询-实体符合度评分且针对考虑组中的每个应用来生成结果评分。例如,加权模块238可以将初始评分与实体质量评分和查询-实体符合度评分相乘。在块816中,提供包括结果评分的一组搜索结果。
[0185]示例性方法800描述了针对单个识别后的实体记录来生成单个重构后的查询。在其中实体识别模块114识别超过一个实体记录和/或查询重构模块116生成多个重构后的查询的实施例中,示例性方法800的某些步骤可以重复进行。
[0186]在一些实施方式中,搜索系统102可以以不同于加权结果评分的方式来使用实体相关值。例如,搜索系统102可以使用实体质量评分230来减少进行的搜索的次数,从而减少用于将搜索结果递送至用户的整体计算资源。例如,实体识别模块114可以被设置成放弃具有较低实体质量评分的识别后的实体记录。在一个实施例中,实体识别模块114可以只保留具有较高实体质量评分的预定数量的实体记录,并且放弃其他实体记录。在另一些实施例中,实体识别模块114可以放弃具有低于阈值的实体质量评分的识别后的实体记录。然后,查询重构模块116可以仅仅基于没有放弃的识别后的实体记录来生成重构后的查询。相似地,如果识别后的实体记录与较低的查询-实体符合度评分相关联,那么搜索系统102可以放弃这些识别后的实体记录。例如,实体识别模块114可以放弃与较低查询-实体符合度评分(如低于阈值)相关联的识别后的实体记录。然后,实体重构模块116可以基于没有被放弃的那些识别后的实体记录来生成重构后的查询。
[0187]在搜索系统102的一些实施方式中,实体记录可以包括关联应用列表以及实体名称、实体类型和实体信息。图15B示出了包括关联应用列表242以及实体名称241、实体ID243和实体信息245的示例性实体记录240。实体记录中包括的关联应用列表可因不同的实体记录而不同。关联应用列表242可以是以某种方式与实体记录240相关的应用列表。在一些实施例中,关联应用列表242可以将实体类型244处理为输入。例如,如果实体记录具有实体类型“电影”,那么实体记录可以在关联应用列表中包括电影播放应用。关联应用列表242还可以是包括或访问与实体记录240描述的实体有关的信息的应用。例如,当实体记录描述的实体为电影时,关联应用列表可以包括电影数据库应用。再例如,当实体记录描述的实体为食品类型(如墨西哥食品)时,关联应用列表可以包括饭店定位应用。
[0188]图15C示出了与图6C的实体记录164相似的示例性实体记录246,只是实体记录246包括示例性关联应用列表248。图15C的实体记录246描述了名为“黑暗骑士崛起”的漫画书。关联应用列表248包括三个应用。具体地,关联应用列表248包括第一阅读应用、第二阅读应用和第三阅读应用。关联应用列表248中的这三个阅读应用可以是用户能够使用其来预览、下载和/或阅读名为“黑暗骑士崛起”的应用。
[0189]关联应用列表248可以被用作过滤器,从而减少由搜索系统102来评分的应用的总数。例如,搜索系统102可以将应用评分限制为只针对识别后的实体记录中列出的那些应用。通过将应用评分限制为只针对识别后的实体记录中列出的那些应用,可以减少用于提供相关搜索结果的计算资源。
[0190]图18A至图18B示出了使用实体记录中的关联应用列表来生成搜索结果的搜索系统102的一个实例。图18A示出了如何将搜索结果限制为只针对关联应用列表。图18B示出了将应用的考虑组限制为实体记录中包括的关联应用列表的示例性应用搜索模块250。
[0191]在图18A的实施例中,如上面根据图9B所描述的那样,实体识别模块190识别对应于搜索查询“观看‘黑暗骑士崛起’”的三个不同的实体记录。具体地,实体识别模块190识别用于“电影”、“漫画书”和“原声音乐”的实体记录。重构模块198通过将来自接收到的搜索查询的项替换为识别后的实体记录的实体类型来针对每个识别后的实体记录生成重构后的查询。
[0192]在图18A中识别的三个实体记录的每一个都包括不同的关联应用列表。例如,针对重构后的查询“观看电影”,关联应用列表(标记为“Assoc.Appsl”)可以被包括在具有实体类型“电影”、且名为“黑暗骑士崛起”的实体记录中。针对重构后的查询“观看漫画书”,关联应用列表(标记为“Assoc.Apps2”)可以被包括在具有实体类型“漫画书”、且名为“黑暗骑士崛起”的实体记录中。针对重构后的查询“观看原声音乐”,关联应用列表(标记为“Assoc.Apps3”)可以被包括在具有实体类型“原声音乐”、且名为“黑暗骑士崛起”的实体记录中。
[0193]应用搜索模块250可以使用每个重构后的查询来进行搜索。应用搜索模块250可以将每个重构后的查询的搜索结果限制为只针对与重构后的查询相关联的识别后的实体记录中列出的应用。因此,应用搜索模块250可以只针对关联应用列表中包括的那些应用来生成结果评分。如图18A所示,应用搜索模块250只针对关联应用列表中包括的那些应用来生成搜索结果。针对重构后的查询“观看电影”,应用搜索模块250为Assoc.Appsl列表生成结果。针对重构后的查询“观看漫画书”,应用搜索模块250为Assoc.Apps2列表生成结果。针对重构后的查询“观看原声音乐”,应用搜索模块250为Assoc.Apps3列表生成结果。
[0194]图18B示出了使用关联应用列表针对重构后的查询来生成一组搜索结果的示例性应用搜索模块250。应用搜索模块250接收搜索查询“观看电影”和被称为“Assoc.Appsl”且包括App A、App B和App C的关联应用列表。查询分析模块122可以如上面所述的那样分析查询“观看电影”。然后,组生成模块252生成应用的考虑组。组生成模块252生成包括关联应用App A、App B和App C的列表的考虑组,而不是如上所述那样识别应用数据商店108中包括的应用记录。例如,在一些实施例中,考虑组可以只包括关联应用App A、App B和App C的列表。然后,如上所述,组处理模块126针对应用App A、App B和App C分别生成结果评分,其被标记为结果评分1、结果评分2和结果评分3。
[0195]图19示出了使用具有关联应用列表的实体记录进行应用搜索的示例性方法900。参考图5的实体识别模块114和查询重构模块116以及图18B的应用搜索模块250来描述方法900。在块902中,实体识别模块114接收搜索查询148。搜索查询148可以是之前由用户设备104所生成的搜索查询。
[0196]在块904中,实体识别模块114识别实体数据商店112中的实体记录。在块906中,查询重构模块116基于识别后的实体记录和搜索查询来生成重构后的查询。在块908中,查询分析模块122可以如上面所述的那样分析重构后的查询。
[0197]在块910中,组生成模块252识别包括在识别后的实体记录的关联应用列表中的应用。组生成模块252生成包括识别后的应用的考虑组。例如,在一些实施例中,考虑组可以只包括识别后的应用。在块912中,组处理模块126确定每个识别后的应用的结果评分。在块914中,组处理模块126生成包括识别后的应用的列表和关联的结果评分的一组搜索结果。
[0198]示例性方法900描述了基于单个重构后的查询来生成单组搜索结果。在其中实体识别模块114识别超过一个实体记录和/或查询重构模块116生成多个重构后的查询的一些实施例中,示例性方法900的一些步骤可以重复进行。
[0199]在此,搜索系统102可以使用过滤技术来放弃识别后的实体记录,从而减少用于进行搜索的整体计算资源。在一些实施例中,搜索系统102(如实体识别模块114)可以放弃识别后的实体记录,该识别后的实体记录具有作为其他识别后的实体记录的实体名称的子串的实体名称。例如,如果搜索查询148包括实体名称“黑暗骑士崛起”并且实体识别模块114识别了用于“黑暗骑士崛起”和“黑暗骑士”的实体记录,那么实体识别模块114可以放弃用于“黑暗骑士”的实体记录。在此实施例中,因为搜索查询中包括“黑暗骑士崛起”的全名,所以与用于“黑暗骑士”的实体记录相比,用于“黑暗骑士崛起”的实体记录与搜索查询之间的相关性更大。因此,在一些实施例中,通过放弃识别后的实体记录(其具有作为其他识别后的实体记录的实体名称的子串的实体名称),可以在减少用于进行搜索的整体计算资源的同时获得相关的搜索结果。
[0200]搜索系统102中包括的模块和数据商店表示可以包括在本公开的搜索系统102中的特征。例如,实体识别模块114、查询重构模块116、应用搜索模块110、应用数据商店108和实体数据商店112可以表示包括在搜索系统102中的特征。在此描述的模块和数据商店可以表现为电子硬件、软件、固件、或其组合。将不同特征描述为单独模块和数据商店并不一定意味着该模块和数据商店能够表现为公共或单独的电子硬件或软件元件。在一些实施方式中,在此描述的、与该一个或多个模块和数据商店相关联的特征可以通过单独的电子硬件和软件元件来实现。
[0201]模块和数据商店可以表现为电子硬件和软件元件,包括但不限于一个或多个处理单元、一个或多个存储器元件、一个或多个输入/输出(I/O)元件以及互连元件。互连元件可以被设置成在该一个或多个处理单元、一个或多个存储器元件和一个或多个I/O元件之间提供通信。例如,互连元件可以包括设置成在电子元件之间传输数据的一个或多个总线。互连元件还可以包括设置成控制电子元件之间的通信的控制电路(如存储控制器和/或I/O控制器)。
[0202]该一个或多个处理单元可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理单元(DSP)或其他处理单元。该一个或多个处理单元可以被设置成与存储器元件和I/O元件通信。例如,该一个或多个处理单元可以被设置成经由互连元件与存储器元件和I/O元件通信。
[0203]存储器元件可以包括任何易失性或非易失性介质。例如,存储器可以包括但不限于电学介质、磁介质和/或光学介质,例如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦只读存储器(EEPROM)、闪存、硬盘驱动器(HDD)、磁带驱动器、光盘存储技术(如光盘、数字通用光盘和/或蓝光光盘)、或任何其他存储器元件。
[0204]存储器元件可以包括(如存储)在此描述的数据。例如,存储器元件可以包括应用数据商店108中包括的应用数据(如应用记录)以及实体数据商店112中包括的实体数据(如实体记录)。存储器元件还可以包括可由一个或多个处理单元来执行的指令。例如,存储器可以包括计算机可读指令,在由一个或多个处理单元执行时,该计算机可读指令使得该一个或多个处理单元进行属于在此描述的模块和数据商店的不同功能。
[0205]I/O元件可以指提供与各种不同设备之间的通信的电子硬件和软件。例如,I/O元件可以在其他设备和该一个或多个处理单元以及存储器元件之间提供通信。在一些实施例中,I/O元件可以被设置成与计算机网络通信。例如,I/O元件可以被设置成使用各种不同的物理连接、无线连接和协议经由计算机网络来交换数据。I/O元件可以包括但不限于网络接口元件(如网络接口控制器)、中继器、网络桥接器、网络交换器、路由器和防火墙。在一些实施例中,I/O元件可以包括设置成与各种人机接口设备通信的硬件和软件,该人机接口设备包括但不限于显示屏幕、键盘、指针设备(如鼠标)、触摸屏、扬声器和麦克风。在一些实施例中,I/O元件可以包括设置成与其他设备通信的硬件和软件,例如与外部存储器(如外部HDD)通信。
[0206]在一些实施方式中,搜索系统102可以是具有一个或多个计算设备的系统,该计算设备被设置成实施在此描述的方法。换句话说,属于在此描述的模块和数据商店的特征可以由一个或多个计算设备来实施。因此,一个或多个计算设备可以从用户设备接收搜索查询148,并且基于接收到的搜索查询148来识别实体数据商店112中的一个或多个实体记录。然后,该一个或多个计算设备可以通过将来自识别后的实体记录的一个或多个项插入至接收到的搜索查询中来生成一个或多个重构后的查询。然后,该一个或多个计算设备可以使用一个或多个重构后的查询来进行软件应用的搜索,并且生成在搜索期间所识别的软件应用的列表。
[0207]该一个或多个计算设备的每一个都包括以上所述的电子硬件、软件和/或固件的任意组合。例如,该一个或多个计算设备的每一个都包括以上所述的处理单元、存储器元件、I/O元件和互连元件的任意组合。搜索系统102的一个或多个计算设备还可以包括各种人机接口设备,其包括但不限于显示屏幕、键盘、指针设备(如鼠标)、触摸屏、扬声器和麦克风。计算设备还可以被设置成以与其他设备通信,例如与外部存储器(如外部HDD)通信。
[0208]搜索系统102的该一个或多个计算设备可以被设置从与网络106通信。搜索系统102的该一个或多个计算设备还可以被设置成经由计算机网络彼此通信。在一些实施例中,搜索系统102的该一个或多个计算设备可以包括一个或多个服务器计算设备,该一个或多个服务器计算设备被设置成与用户设备通信(如接收查询和发送结果)、从数据源120收集数据、索引数据、存储应用数据和实体数据、以及存储其他文档。在一些实施例中,该一个或多个计算设备可以驻留在单个机器中并且位于单个地理位置处。在另一些实施例中,该一个或多个计算设备可以驻留在多个机器中并且位于单个地理位置处。在另一些实施例中,搜索系统102的该一个或多个计算设备可以分布在多个地理位置处。
[0209]说明书中使用的语言已经被选择以主要用于可读性和指导性目的,而非用于描述或限制本发明的主题。因而,本发明的范围并非由此详细描述来限定,而是由关于基于此的申请而发布的任何权利要求来限定。因此,本发明的实施例的公开试图示例性说明而不是限制本发明的范围,而本发明的范围由下面的权利要求来说明。
【主权项】
1.一种方法,包括: 接收搜索查询; 通过计算机搜索系统,使用搜索查询来识别实体数据商店中的实体记录,其中实体数据商店包括多个实体记录,其中每个实体记录包括实体名称、实体类型和实体信息,并且其中实体类型指示实体名称和实体信息所属的种类; 通过计算机搜索系统,通过将来自识别后的实体记录的一个或多个项插入至搜索查询来生成重构后的查询; 通过计算机搜索系统,使用重构后的查询来进行软件应用的搜索;以及 生成在搜索期间所识别的软件应用的列表。2.如权利要求1所述的方法,其中接收搜索查询包括从计算设备接收搜索查询,并且其中所述方法还包括将软件应用的列表发送至所述计算设备。3.如权利要求1所述的方法,其中每个实体记录中包括的实体信息包括与其中包括实体信息的实体记录的实体名称和实体类型两者都相关联的数据。4.如权利要求1所述的方法,其中与多个实体记录中的每个实体记录一起存储的实体信息包括基于实体类型的一组字段。5.如权利要求1所述的方法,其中识别实体数据商店中的实体记录包括检测搜索查询的项与在识别后的实体记录的实体名称、实体类型和实体信息的至少一个中包括的项之间的匹配度。6.如权利要求1所述的方法,其中生成重构后的查询包括将识别后的实体记录的实体名称插入至搜索查询中。7.如权利要求1所述的方法,其中生成重构后的查询包括将识别后的实体记录的实体类型插入至搜索查询中。8.如权利要求1所述的方法,其中生成重构后的查询包括将识别后的实体记录的实体信息的一个或多个项插入至搜索查询中。9.如权利要求1所述的方法,其中生成重构后的查询包括将搜索查询的一个或多个项替换为来自识别后的实体记录的一个或多个项。10.如权利要求9所述的方法,其中生成重构后的查询包括: 识别对应于识别后的实体记录的搜索查询的一个或多个项;以及 将搜索查询的一个或多个项替换为识别后的实体记录的实体名称,从而生成重构后的查询。11.如权利要求9所述的方法,其中生成重构后的查询包括: 识别对应于识别后的实体记录的搜索查询的一个或多个项;以及 将搜索查询的一个或多个项替换为识别后的实体记录的实体类型,从而生成重构后的查询。12.如权利要求9所述的方法,其中生成重构后的查询包括: 识别对应于识别后的实体记录的搜索查询的一个或多个项;以及 将搜索查询的一个或多个项替换为识别后的实体记录的实体信息的一个或多个项,从而生成重构后的查询。13.如权利要求1所述的方法,其中生成重构后的查询包括: 确定识别后的实体记录的实体名称包括在搜索查询中;以及 将搜索查询中包括的实体名称替换为识别后的实体记录的实体类型,从而生成重构后的查询。14.如权利要求1所述的方法,其中生成重构后的查询包括: 确定识别后的实体记录的实体名称包括在搜索查询中;以及 将搜索查询中包括的实体名称替换为来自识别后的实体记录的实体信息的一个或多个项,从而生成重构后的查询。15.如权利要求1所述的方法,其中生成重构后的查询包括: 确定识别后的实体记录的实体信息中的一个或多个项包括在搜索查询中;以及将搜索查询中的一个或多个项替换为识别后的实体记录的实体名称,从而生成重构后的查询。16.如权利要求1所述的方法,其中生成重构后的查询包括: 确定识别后的实体记录的实体信息中的一个或多个项包括在搜索查询;以及将搜索查询中的一个或多个项替换为识别后的实体记录的实体类型,从而生成重构后的查询。17.如权利要求1所述的方法,其中生成重构后的查询包括: 确定识别后的实体记录的实体信息中的第一组项包括在搜索查询中; 在识别后的实体记录的实体信息中选择第二组项;以及 将搜索查询中的第一组项替换为识别后的实体记录的实体信息中的第二组项,从而生成重构后的查询。18.如权利要求1所述的方法,其中软件应用的搜索是软件应用的第一次搜索,其中软件应用的列表是软件应用的第一列表,并且其中所述方法还包括: 使用搜索查询针对软件应用进行第二次搜索; 生成在第二次搜索期间所识别的软件应用的第二列表;以及 将软件应用的第一列表和第二列表组合成软件应用组合后的列表。19.如权利要求1所述的方法,其中重构后的查询是第一重构后的查询,其中来自识别后的实体记录的一个或多个项是第一组项,并且其中所述方法还包括通过将来自识别后的实体记录的第二组项插入至搜索查询中来生成第二重构后的查询,其中第二组项不同于第一组项。20.如权利要求19所述的方法,其中软件应用的搜索是软件应用的第一次搜索,其中软件应用的列表是软件应用的第一列表,并且其中所述方法还包括: 使用第二重构后的查询来进行软件应用的第二次搜索; 生成在第二次搜索期间所识别的软件应用的第二列表;以及 将软件应用的第一列表和第二列表组合成软件应用组合后的列表。21.如权利要求1所述的方法,其中识别后的实体记录是多个实体记录的第一实体记录,并且其中所述方法还包括使用搜索查询来识别第二实体记录。22.如权利要求1所述的方法,其中每个实体记录都包括实体标识,并且其中每个实体标识唯一地识别在其中包括实体标识的实体记录。23.如权利要求1所述的方法,其中多个实体记录的每一个都包括指示实体记录的受欢迎度的实体质量评分,所述方法还包括:基于识别后的实体记录中包括的实体质量评分来针对软件应用的列表中的每个软件 应用生成结果评分;以及基于与软件应用相关联的结果评分来对软件应用的列表中的软件应用进行排序。24.如权利要求1所述的方法,还包括:基于识别后的实体记录中包括的项与搜索查询的项之间的匹配度来生成查询-实体符 合度评分;基于查询-实体符合度评分来针对软件应用的列表中的每个软件应用生成结果评分; 以及基于与软件应用相关联的结果评分来对软件应用的列表中的软件应用进行排序。25.如权利要求1所述的方法,其中每个实体记录都包括关联软件应用的列表,其中进 行软件应用的搜索包括在识别后的实体记录的关联软件应用的列表中选择每个软件应用, 并且其中所述方法还包括:针对关联软件应用的列表中的每个软件应用生成结果评分;以及基于结果评分对关联软件应用的列表中的软件应用进行排序。26.—种系统,包括:实体数据商店,其包括多个实体记录,其中每个实体记录都包括实体名称、实体类型和 实体信息,其中实体类型指示实体名称和实体信息所属的种类,并且其中每个实体记录中 包括的实体信息包括与其中包括实体信息的实体记录的实体名称和实体类型两者都相关 联的数据;以及一个或多个计算设备,其设置成:接收搜索查询,使用搜索查询来识别实体数据商店中的实体记录,通过将来自识别后的实体记录的一个或多个项插入至搜索查询中来生成重构后的查 询,使用重构后的查询来进行软件应用的搜索,以及生成在搜索期间所识别的软件应用的列表。27.如权利要求26所述的系统,其中一个或多个计算设备被设置成通过检测搜索查询 的项与在识别后的实体记录的实体名称、实体类型和实体信息的至少一个中包括的项之间 的匹配度来识别实体数据商店中的实体记录。28.如权利要求26所述的系统,其中一个或多个计算设备被设置成通过将识别后的实 体记录的实体名称、实体类型和实体信息中的一个或多个项中的至少一个插入至搜索查询 中来生成重构后的查询。29.如权利要求26所述的系统,其中一个或多个计算设备被设置成通过将搜索查询中 一个或多个项替换为来自识别后的实体记录的一个或多个项来生成重构后的查询。30.—种非瞬态计算机可读存储介质,包括指令,所述指令使得一个或多个计算设备:接收搜索查询;使用搜索查询来识别实体数据商店中的实体记录,其中实体数据商店包括多个实体记 录,其中每个实体记录包括实体名称、实体类型和实体信息,并且其中实体类型指示实体名称和实体信息所属的种类;通过将来自识别后的实体记录的一个或多个项插入至搜索查询来生成重构后的查询; 使用重构后的查询来进行软件应用的搜索;以及 生成在搜索期间所识别的软件应用的列表。
【文档编号】G06F17/30GK106030569SQ201480075035
【公开日】2016年10月12日
【申请日】2014年12月3日
【发明人】利龙·沙皮拉, 乔纳森·本祖尔, 迈克尔·哈里斯
【申请人】奎克西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1