更新用于促进应用搜索的搜索索引
2019-11-22

更新用于促进应用搜索的搜索索引

公开了用于维护用于支持应用搜索的搜索索引的技术。该技术包括从一个或多个数据源接收应用数据,标识所述应用数据中参考的应用。该技术进一步包括基于应用具体搜索模式从所述应用数据生成对应于所述应用的多个属性。该技术还包括基于所述多个属性和所述应用具体搜索模式生成所述应用的应用代表。该技术还包括利用所述应用代表更新搜索索引。

在某些实现方式中,预先考虑集合536包括每个应用代表315的标识符和应用的应用代表,例如,规范应用330和/或一个或多个版本应用332的特征。因此,预先考虑集合P可以由以下矩阵表示:

在操作570,集合减少模块516将预先考虑集合536减少到考虑集合538。考虑集合538包含考虑集合536中最相关的应用。查询处理模块512分析预先考虑集合536中指示的应用代表315中定义的特征的预先确定的子集以标识最相关的应用。在某些实现方式中,实现Lucene以确定针对预先考虑集合536中每个应用代表315的质量评分并且基于该评分从预先考虑集合536选择考虑集合528。

通过对所接收数据的不同组合的分析,属性的提取可以通过任何适当的方式进行。例如,提取模块314可以组合参考相同版本应用332或规范应用330的应用数据322的两个或更多个实例。在组合应用数据322之后,提取模块314可以针对各种模式、关联性或关键字匹配来分析经组合的应用数据322以提取属性。

在另一示例中,提取模块314还可以将每个版本应用332的名称与先前标识的规范应用330的列表或硬编码的规范应用330的列表(例如,10000个最受欢迎的应用)进行比较。如果对应于版本应用332的名称和开发者名称匹配先前标识的规范应用330,则版本应用332可以与先前标识的规范应用330表示的版本应用332组分组在一起。如果版本应用332没有包括在应用代表315中,则版本应用332可以被添加到应用代表315。如果名称和开发者名称不匹配任何已知应用,则提取模块314可以创建新的规范应用330和新的版本应用332,其组合包括新的应用表示315。

提取模块314分析应用数据322并且基于此生成一个或多个应用代表315。图7图不了应用代表315的不例。应用代表315可以包括规范应用330和一组一个或多个版本应用332。此外,应用代表可以包括对应于规范应用330的属性334("通用属性"334a),以及对应于版本应用332的属性334("版本属性"334b)。如这里所使用的,术语"规范应用"可以指的是一组相似应用(例如,版本应用332)的代表。在某些实现方式中,规范应用330是代表或伞,其下一个或多个版本应用332被分类。该组一个或多个版本应用332指的是一组功能上相似的应用。换言之,版本应用332是具有相似编程和/或功能的应用。版本应用332的示例是应用的不同发布版本(例如,测试版、1.0或2.0),应用的不同语言版本(例如,英语、俄语或中文)、应用的不同平台版本(例如,iOS®成ANDROID®)、不同的功能特性(例如,轻量级版本、高级用户版本)、不同的审美特性(例如,假日主题版本)和应用的不同分辨率版本(例如,标准清晰度或高清晰度)。注意,相关但不相似的应用(例如,一系列游戏中的续篇或系列软件的不同发布)通常不被分类在相同规范应用330下。例如,ANGRYBIRDS可以是与ANGRYBIRDSSTARWARS分离的规范应用。虽然所述应用可以具有相同的基本概念,但是它们是不同的游戏。在某些实现方式中,应用搜索具体模式410可以定义如何组织应用代表315。例如,应用搜索具体模式410可以指示某些属性334a被分组在规范应用下而其他属性332b可以被组织为规范应用的每个版本的一部分。说明性地,定义应用功能的通用属性334a可以被组织在规范应用下而指示版本应用执行的平台的版本属性334b可以被组织在每个相应版本应用下。

本美国专利申请按照35U.S.C.§119(e)要求2012年4月27日提交的美国临时申请61/639,740和2012年8月7日提交的美国临时申请61/680,535的优先权。先前申请的公开内容被认为是本申请公开内容的一部分并且由此通过引用将其整体并入于此。

计算架构

图6中描述的数据处理服务器300的数据流被提供仅用于示例而不旨在限制。此夕卜,数据处理服务器300可以从许多不同源110分析应用数据322并且可以生成/更新对应于许多不同应用的应用代表315。数据处理服务器300的变体是预期的并且在本公开的范围内。此外,所公开的模块(例如,提取模块314)可以被分成子模块。

在操作352,引入模块312从数据源110获得应用数据322。如先前所述,引入模块312可以被动和/或主动收集应用数据322。当被动获得应用数据322时,引入模块312可以直接从数据源110接收应用数据。例如,应用开发者ll〇a、应用评论者110d或博客者110e可以向数据处理服务器300传输应用数据322,使得应用数据322可以被包括在应用代表中。当主动收集应用数据322时,引入模块312可以被配置为实现一个或多个web爬虫或者监控已知数据源110以收集应用数据322。在这些实现方式中,引入模块312可以通过针对具体词语或词语的组合进行搜索定位相关应用数据。

相反,实现方式基于包括应用的功能属性的应用代表通过执行搜索直接标识应用。因此,实现方式基于对应用的功能方面的匹配支持应用的标识。因此,由这里所述实现方式生成的搜索结果可以比当前搜索引擎生成的搜索结果具有更高的质量。

示例计算设备1100包括一个或多个处理器1102(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或者多个专用集成电路(ASIC)、一个或者多个射频集成电路(RFIC)或者这些处理器的任何组合)、主存储器1104和静态存储器1106,其被配置用于经由总线1108相互通信。计算机系统1100还可以包括图形显示单元1110(例如,等离子体显示面板(PDP)、液晶显示器(IXD)、投影仪或者阴极射线管(CRT))。计算设备1100还可以包括字母数字输入设备1112(例如,键盘)、光标控制设备1114(例如,鼠标、跟踪球、操纵杆、运动传感器或者其它指点工具)、存储单元1116、信号生成设备1118(例如,扬声器)和网络接口设备1120,其也被配置用于经由总线1108通信。

在操作352,引入模块312从数据源110获得应用数据322。如先前所述,引入模块312可以被动和/或主动收集应用数据322。当被动获得应用数据322时,引入模块312可以直接从数据源110接收应用数据。例如,应用开发者ll〇a、应用评论者110d或博客者110e可以向数据处理服务器300传输应用数据322,使得应用数据322可以被包括在应用代表中。当主动收集应用数据322时,引入模块312可以被配置为实现一个或多个web爬虫或者监控已知数据源110以收集应用数据322。在这些实现方式中,引入模块312可以通过针对具体词语或词语的组合进行搜索定位相关应用数据。