CN104412265B - 更新用于促进应用搜索的搜索索引 - Google Patents
更新用于促进应用搜索的搜索索引 Download PDFInfo
- Publication number
- CN104412265B CN104412265B CN201380034467.1A CN201380034467A CN104412265B CN 104412265 B CN104412265 B CN 104412265B CN 201380034467 A CN201380034467 A CN 201380034467A CN 104412265 B CN104412265 B CN 104412265B
- Authority
- CN
- China
- Prior art keywords
- application
- data
- attribute
- processing equipment
- search
- 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.)
- Expired - Fee Related
Links
- 230000001737 promoting effect Effects 0.000 title description 8
- 241001269238 Data Species 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 110
- 238000000605 extraction Methods 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 68
- 230000006870 function Effects 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 24
- 239000000284 extract Substances 0.000 claims description 17
- 238000010801 machine learning Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000013075 data extraction Methods 0.000 claims description 7
- 239000012634 fragment Substances 0.000 claims description 3
- 230000005094 fruit set Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 28
- 230000015654 memory Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000006399 behavior Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000003542 behavioural effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 230000003203 everyday effect Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007418 data mining Methods 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 238000009940 knitting Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/31—Indexing; Data structures therefor; Storage structures
-
- 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
-
- 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/951—Indexing; Web crawling techniques
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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了用于维护用于支持应用搜索的搜索索引的技术。该技术包括从一个或多个数据源接收应用数据,标识所述应用数据中参考的应用。该技术进一步包括基于应用具体搜索模式从所述应用数据生成对应于所述应用的多个属性。该技术还包括基于所述多个属性和所述应用具体搜索模式生成所述应用的应用代表。该技术还包括利用所述应用代表更新搜索索引。
Description
相关申请的交叉引用
本美国专利申请按照35U.S.C.§119(e)要求2012年4月27日提交的美国临时申请61/639,740和2012年8月7日提交的美国临时申请61/680,535的优先权。先前申请的公开内容被认为是本申请公开内容的一部分并且由此通过引用将其整体并入于此。
技术领域
本公开总体上涉及应用搜索领域,具体地涉及更新用于促进应用搜索的搜索索引。
背景技术
近年来,计算机、智能电话和其他因特网连接设备的用户成指数级增长。因此,针对此类设备的可用应用的数目也随之增长。如今,许多不同的应用可以在任意数目的不同设备上访问,包括但不限于智能电话、个人计算机、冰箱、汽车和电视。这些不同的应用可以范围从商业驱动的应用、游戏、教育应用、新闻应用、购物应用、效率应用、消息传输应用、视频聊天应用、媒体流传输应用、社交联网应用到其他更多应用。此外,应用开发者开发每个类型内的大量应用并且每个应用可以具有若干版本。
附图说明
所公开的实施方式具有其他优点和特征,这些其他优点和特征从具体实施方式、所附权利要求书和附图(或附图说明)中变得更容易理解。以下是附图的简要介绍。
图1是图示了被配置为支持应用搜索的应用搜索***的示图。
图2是图示了用于接收搜索查询并提供搜索结果的示例图形用户接口(GUI)的示图。
图3是图示了图1的应用搜索***的各组件的示例集合的示意图。
图4是图示了应用搜索具体模式的示例的示意图。
图5是图示了数据处理服务器的各组件的示例集合的示意图。
图6是图示了数据处理服务器的示例数据流的数据流图。
图7是图示了应用表示的示例的示图。
图8是图示了用于生成和/或更新搜索索引的方法的各操作的示例布置的流程图。
图9是图示了应用搜索服务器的各组件的示例集合的示意图。
图10是图示了应用搜索服务器的示例数据流的数据流图。
图11是图示了用于处理搜索查询的方法的各操作的示例布置的流程图。
图12是图示了示例计算设备的示意图。
具体实施方式
附图和下面的描述仅以说明的方式涉及优选实施方式。应当注意,从下面的讨论中,这里所公开的结构和方法的备选实施方式将很容易被视作在不背离所要求保护的原理的情况下采用的可行的备选。应当注意,在任何可实践的情况下,可以在附图中使用相似或相同的附图标记,并且相似或相同的附图标记可以指示相似或相同的功能。
应用搜索***
随着通常可用的应用的数目的增长,***标识执行特定功能的能力大大减少。如这里所使用的,术语“应用”可以包括能够被执行以提供功能的任何软件。此外,“应用”可以被设计用于各种平台,包括但不限于,各种移动计算设备操作***、个人计算设备操作***和各种web浏览器(例如,web应用和浏览器插件)。术语“应用”还可以指一个或多个相关应用的代表,例如,应用的“免费”和“付费”版本。潜在消费者通过口碑、对应用零售商站点的随机搜索、关于流行或新应用的文章以及搜索引擎上基于关键字的搜索来了解应用。
本公开涉及用于促进应用搜索的技术。如这里所使用的,术语“应用搜索”可以指的是搜索查询的处理,该搜索查询旨在基于该查询的内容标识一个或多个应用。本公开涉及生成并更新后端基础设施以支持应用搜索以及搜索查询的前端处理。
图1是图示了被配置为支持应用搜索的应用搜索***100的示意图。在所示示例中,应用搜索***100从各种数据源110接收应用数据。应用数据被用于生成对应于各种应用的一个或多个搜索索引。术语“应用数据”可以指的是与应用有关的任何类型的信息。数据源110的示例可以包括但不限于应用开发者110a、应用商店110b、应用目录110c、应用评论110d、博客110e和微博/社交联网站点110f。应用数据的示例包括应用的标题、应用的描述、应用的大量评论、应用的质量评级、数值上评论评级、开发者名称、标题名称、图标、博客帖子关于应用的节选以及关于应用的推特。根据本公开的某些实现方式,应用搜索***100被配置为基于所接收的应用数据生成并更新与应用搜索结合使用的搜索索引。
应用搜索***100进一步被配置为从各种伙伴设备120接收搜索查询。如这里所使用的,术语“伙伴”可以指的是利用应用搜索***100的搜索功能的任意第三方实体(例如,公司或其他组织)或者最终用户(例如,个体消费者)。伙伴设备120可以是能够向应用搜索***100提供搜索查询的任意计算设备。伙伴设备120的示例包括但不限于平板计算机120a、智能电话120b、个人计算机120c和第三方服务120d。其他类型的伙伴设备120(诸如具有用户接口的消费性电子产品(例如,车载信息娱乐***、游戏设备、联网的冰箱和电视机))是预期的并且在本公开的范围内。在最终用户设备(例如,平板计算机120a、智能电话120b和个人计算机120c)的情况下,最终用户设备可以经由利用一个或多个API以访问应用搜索***100的web浏览器、专用应用和/或第三方服务器120d来访问应用搜索***100。
在操作中,应用搜索***100可以向伙伴设备120提供图形用户接口(GUI)。图2图示了可以在伙伴设备120(或者与伙伴设备操作通信的另一设备)显示的示例GUI 200。GUI200包括接收由用户输入的搜索查询204的文本输入对象202。在所示示例中,用户已经输入了陈述“整理我的橱柜”的搜索查询204。伙伴设备120可以经由网络130向应用搜索***100传输搜索查询204,并且可以响应于搜索查询204接收包括代表应用的列表的搜索结果206。搜索结果206在GUI 200中显示。在所示示例中,搜索结果206包括第一代表应用206a、第二代表应用206b和第三代表应用206c。代表应用可以是“规范应用”(下文进一步详细描述),其表示一个或多个“版本应用”(下文进一步详细描述)。如下文进一步详细描述,搜索结果206不要求关键字匹配搜索查询204以便与搜索查询204相关。例如,第二代表应用206b可以与搜索查询“整理我的橱柜”相关,尽管词语“整理”和“橱柜”没有出现在第二代表应用206b的标题或应用描述中。图2的GUI 200仅提供用于示例并非旨在限制。GUI200的变体是预期的并且在本公开的范围内。例如,GUI 200可以显示一个或多个过滤器,其允许用户限制或约束搜索的范围。例如,过滤器可以允许用户通过设备类型限制搜索范围,例如,智能电话、平板或web浏览器,以及/或者通过平台,例如,加州库比蒂诺市苹果公司的谷歌公司的或华盛顿州雷德蒙德市微软公司WINDOWS用户可以经由GUI 200选择一个或多个过滤器,使得搜索结果仅包含属于选定的一个或多个过滤器的结果。此外,在第三方服务器120d的情景下,第三方服务器120d可以向最终用户设备提供其自己的GUI,使得最终用户设备经由第三方服务器120d访问应用搜索***100。
现在参考图3,描绘了应用搜索***100的示例配置。在所示示例中,应用搜索***100包括数据处理服务器300、搜索索引400和应用搜索服务器500。虽然示例应用搜索***100将数据处理服务器300和应用搜索服务器500示为单独的服务器设备,但是应用搜索***100可以在单个服务器设备中实现而不脱离本公开的范围。此外,应用搜索服务器500和/或数据处理服务器300可以被实现为独立或以分布式方式工作的联网服务器的集合。另外,搜索索引400可以在独立数据服务器或者数据处理服务器300和/或应用搜索服务器500上实现。在搜索索引400被维护在不止一个服务器的实现方式中,搜索索引400可以定期更新以维护搜索索引400的每个实例之间的一致性。
在操作中,数据处理服务器300从各数据源110收集应用数据并且标识在应用数据中引用的一个或多个应用。针对所标识的应用,数据处理服务器300可以基于应用数据和应用搜索具体模式生成所标识应用的应用代表。如这里所使用的,术语“应用代表”可以包括根据应用搜索具体模式定义应用属性的数据结构的任何实例。术语“应用搜索具体模式”可以指的是定义可以用于描述应用的属性类型和应用代表的结构的任何适当的模式。此外,应用搜索具体模式可以包括能够与属性相关联的标签,使得属性可以被分类。如这里所使用的,属性或特征可以指的是可以从应用数据生成的关于应用的任何信息或者可以从查询生成的与查询有关的信息。注意,属性或特征可以是数值、文本值、二进制值或任意其他适当类型的值。
图4图示了应用搜索具体模式410的非限制示例。在所示示例中,应用搜索具体模式410包括至少五个属性类别。所述属性类别包括核心属性412、硬元数据属性414、软元数据属性416、片段属性418和行为属性420。核心属性412可以包括应用的具体标识信息。核心属性412的示例包括但不限于应用名称412a、应用发布者412b、应用版本412c和应用平台(未示出)。硬元数据属性可以包括对应于应用的可测量信息或关于应用的声明。硬元数据属性414的示例可以包括但不限于应用的电池使用414、应用的网络带宽需求414b和应用的整体下载414c。软元数据属性416可以包括对应于应用的主观信息或情绪。软元数据属性416的示例可以包括但不限于整体应用评级416a、年龄评级416b和受信评论者评级416c。片段属性418可以包括提供对应于应用的支持信息的数据。片段属性418可以包括但不限于来自评论的文本418a、来自描述的文本418b和来自社交媒体发布的文本418c。行为属性420可以包括由对伙伴的动作进行分析产生的数据。行为属性420可以从伙伴设备120的动作确定。行为属性的示例可以包括但不限于搜索查询420a、搜索结果420b和用户选择420c。属性类别和属性类型的前述列表仅提供用于示例。附加或备选类别可以被包括在应用搜索具体模式410中。此外,可以被收集的任意类型的属性可以被包括在应用搜索具体模式410中。应用搜索具体模式410可以进一步包括用于定义应用代表中每个属性的语法。例如,应用搜索具体模式410可以定义多个不同标签用于标签每个标识的属性。
返回参考图3,数据处理服务器300从应用数据提取应用的属性并且基于所提取的属性和应用搜索具体模式410生成应用代表。数据处理服务器300可以基于所生成的应用代表构建并更新搜索索引400。搜索索引400可以是其条目是应用代表的数据库或数据库表。通过此方式,搜索索引通过应用代表的属性可搜索。虽然示出了一个搜索索引,但是应用搜索***100可以包括不止一个搜索索引400。例如,每个搜索索引400可以表示不同的应用类别,例如,游戏、生产、生活方式和教育。在这些实现方式中,搜索应用所需的时间可以被减少,这是因为搜索索引400可以被并行搜索和/或某些搜索索引400可以从搜索完全排除。
应用搜索服务器500从伙伴设备120接收搜索查询并且至少部分基于从伙伴设备120接收的搜索查询中表达的期望功能搜索一个或多个应用。更具体地,响应于从伙伴设备120接收搜索查询,应用搜索服务器500基于搜索索引400和搜索查询标识一个或多个相关应用。在某些实现方式中,应用搜索服务器500基于应用的功能与所接收搜索查询中表达(隐式或显式)的功能的匹配程度标识一个或多个应用。应用搜索服务器500可以返回涉及所标识应用的结果集。
数据处理服务器
图5是图示了数据处理服务器300的示例组件的示意图。数据处理服务器300可以包括处理设备302、存储器设备304、网络接口设备306和存储设备308。应当理解,数据处理服务器300可以包括图5中未示出的附加组件。
处理设备302可以包括一个或多个处理器以及存储由所述一个或多个处理器执行的机器可读指令的存储器(例如,只读存储器或随机访问存储器)。在处理设备302包括不止一个处理器的实现方式中,处理器可以单独或分布式方式执行。在某些实现方式中,处理设备302可以执行引入模块312、提取模块314和索引模块316。
存储器设备304是计算设备10的非瞬态计算机可读介质。虽然描绘了一个存储器设备304,但是术语“存储器设备”可以包括一个或多个计算机可读介质。存储器设备的示例包括但不限于只读存储器(ROM)、动态随机访问存储器(dRAM)和/或静态随机访问存储器(sRAM)。存储器设备304可以存储应用数据322,包括但不限于结构应用数据322a和非结构应用数据322b和半结构应用数据322c。
网络接口设备306经由网络130执行与其他远程设备的通信。网络接口设备306可以执行有线或无线通信。网络接口设备306的示例包括但不限于收发器,其被配置为使用IEEE 802.11无线标准、以太网端口和通用串行总线(USB)端口执行通信。虽然图示了网络接口设备306,但是术语网络接口设备306可以包括一个或多个网络接口设备306。
存储设备308是非瞬态非易失性计算机可读介质。虽然描绘了一个存储设备308,但是术语“存储设备”可以包括一个或多个计算机可读介质。存储设备的示例包括但不限于硬盘驱动、固态驱动、光盘驱动和闪存驱动。在某些实现方式中,存储设备308存储应用具体搜索模式410。
图6是图示了数据处理服务器300的示例数据流的数据流图。引入模块312从各数据源110收集应用数据322。引入模块312可以从各数据源110被动地收集和/或主动地收集应用数据322。在前者情景中,数据源110可以向数据处理服务器300发送应用数据322。在后者情景中,即,主动收集,引入模块312可以实现web爬虫,其以自动方式浏览万维网和/或已知应用零售站点以寻找应用数据322以及/或者可以向已知数据源110传输针对应用数据322的请求。如所提到的,应用数据322可以是结构应用数据322a和非结构应用数据322b和半结构应用数据322c。如这里所使用的,术语“结构应用数据”可以指的是明确地与特定数据字段相关联的应用数据。例如,结构应用数据322a可以包括标题数据字段中显式定义的应用名称。术语“非结构应用数据”可以指的是不明确地与特定数据字段相关联的应用数据。非结构应用数据322b可以是自由格式,诸如从各社交网络订阅122f、微博订阅122f、博客122e和评论110d接收的数据。术语“半结构应用数据”可以指的是在广泛层面与特定数据字段相关联但数据字段内的文本以非结构方式提供。例如,应用数据322的项目可以广泛地与描述数据字段相关联。然而,应用数据322的项目可以包括文本的段落,其在粒度层面可以被认为是非结构的。在某些实现方式中,应用数据322的类型(结构、非结构或半结构)可以影响处理数据的方式并且用于促进应用搜索。
提取模块314分析应用数据322并且基于此生成一个或多个应用代表315。图7图示了应用代表315的示例。应用代表315可以包括规范应用330和一组一个或多个版本应用332。此外,应用代表可以包括对应于规范应用330的属性334(“通用属性”334a),以及对应于版本应用332的属性334(“版本属性”334b)。如这里所使用的,术语“规范应用”可以指的是一组相似应用(例如,版本应用332)的代表。在某些实现方式中,规范应用330是代表或伞,其下一个或多个版本应用332被分类。该组一个或多个版本应用332指的是一组功能上相似的应用。换言之,版本应用332是具有相似编程和/或功能的应用。版本应用332的示例是应用的不同发布版本(例如,测试版、1.0或2.0),应用的不同语言版本(例如,英语、俄语或中文)、应用的不同平台版本(例如,或)、不同的功能特性(例如,轻量级版本、高级用户版本)、不同的审美特性(例如,假日主题版本)和应用的不同分辨率版本(例如,标准清晰度或高清晰度)。注意,相关但不相似的应用(例如,一系列游戏中的续篇或系列软件的不同发布)通常不被分类在相同规范应用330下。例如,ANGRY BIRDS可以是与ANGRY BIRDS STAR WARS分离的规范应用。虽然所述应用可以具有相同的基本概念,但是它们是不同的游戏。在某些实现方式中,应用搜索具体模式410可以定义如何组织应用代表315。例如,应用搜索具体模式410可以指示某些属性334a被分组在规范应用下而其他属性332b可以被组织为规范应用的每个版本的一部分。说明性地,定义应用功能的通用属性334a可以被组织在规范应用下而指示版本应用执行的平台的版本属性334b可以被组织在每个相应版本应用下。
提取模块314可以通过任何适当的方式标识规范应用330及其对应的版本应用332。在某些实现方式中,提取模块314解析并合并应用数据322以标识其中参考的规范应用330和版本应用332。合并应用数据322可以包括基于应用数据322对版本应用332进行分组并调解所述分组。
对版本应用332进行分组可以包括标识相同或实质上相似的应用标题。提取模块314可以基于若干考虑标识相似的应用标题,所述考虑包括应用的标题、应用的开发者和/或应用的应用零售站点标识码。应用零售站点标识码可以是用于索引应用零售站点上特定应用的参考码。当将版本应用分组在规范应用下并生成规范应用名称时,提取模块314可以从版本应用的名称中移除应用标题中的常用词语,诸如(但不限于)“免费”、“精简版”、“HD”、“试验”、“测试”、“版本”、“英语”(或任意其他语言)、“付费”、“iOS”、“Android”和“全部”。通过示例的方式,应用数据322可以包括对参考应用的ANGRY集合(Rovio娱乐公司提供)的各标题的参考。参考的标题可以包括“ANGRY BIRDS v.1”、“ANGRY BIRDSv.2”、“ANGRY BIRDS LITE”、“ANGRY BIRDS HD”、“ANGRY BIRDS ANDROID”和“ANGRY BIRDSISO”。在此示例中,提取模块314可以移除常用词语使得所有上文所参考的应用被称为“ANGRY BIRDS”。此外,提取模块314可以将每个版本应用332的开发者名称进行比较以确定各版本应用332是否应当被分组在一起。在此示例中,所有参考的应用具有共同的开发者,例如,“Rovio娱乐”。提取模块314还可以从开发者名称中移除常用词语。例如,诸如“INC.”、“L.L.C.”和“LTD.”的词语可以从开发者名称中移除。提取模块314可以将具有匹配或实质上匹配名称和开发者名称的各版本应用进行分组。
在另一示例中,提取模块314还可以将每个版本应用332的名称与先前标识的规范应用330的列表或硬编码的规范应用330的列表(例如,10000个最受欢迎的应用)进行比较。如果对应于版本应用332的名称和开发者名称匹配先前标识的规范应用330,则版本应用332可以与先前标识的规范应用330表示的版本应用332组分组在一起。如果版本应用332没有包括在应用代表315中,则版本应用332可以被添加到应用代表315。如果名称和开发者名称不匹配任何已知应用,则提取模块314可以创建新的规范应用330和新的版本应用332,其组合包括新的应用表示315。
提取模块314分析应用数据322以提取应用(例如,规范应用330或版本应用332)的属性。如先前所述,应用数据322可以是从一个或多个应用数据源110接收的任意文本或数值数据。在某些实现方式中,提取模块314实现数据挖掘和/或自然语言处理技术以标识应用的文本属性。具体地,提取模块314可以对结构、非结构和半结构应用数据322进行数据挖掘以提取文本属性。在某些实现方式中,提取模块314被配置为针对具体词语或短语解析并分析半结构数据322c和非结构数据322b,所述具体词语或短语诸如是版本应用332或规范应用330的名称、评论中找到的词语、在描述具体属性时找到词语,例如,电池或安全或者任意其他适当的词语。提取模块314继而可以提取所述具体词语或短语周围的文本。例如,提取模块314可以提取核心词语或者词语或短语周围的语义片段。另外,由提取模块314实现的数据挖掘技术可以进一步从应用数据322提取数值或二进制属性。
在某些实现方式中,提取模块314分析应用数据322中包含的文本并实现基于规则的推断模式以从应用数据322提取属性。例如,提取模块314可以分析应用开发者的应用描述以标识文本的语言和应用开发者网站的IP地址。基于上文所述,提取模块314可以确定版本应用332的主要人口统计。例如,提取模块314可以确定网站是以葡萄牙语书写并且网站的IP地址指定位置是巴西。如此,提取模块314可以提取指示应用是主要针对巴西说葡萄牙语的受众的应用属性。在另一示例中,提取模块314可以针对具有高词频-逆文档频率值的词语解析应用数据322的文本,并且可以利用关联表来推断并评定应用数据语义块的值。
在某些实现方式中,提取模块314通过组合应用数据从不同源提取评级属性,例如,整体应用评级属性416a或受信评论者评级416c。说明性地,提取模块314可以标识来自多个评论的质量评级,并且可以标准化并组合质量评级以获得整体应用评级。类似地,如果质量评级全部来自已知源,例如,信誉好的评论发布或博客,则提取模块314可以标准化并组合质量评级以获得受信评论者评级属性416c。
在某些实现方式中,提取模块314通过分析所接收的应用数据322的不同组合提取属性。作为示例,来自应用开发者的应用数据322可以包括指示应用适于十三岁以下儿童的文本,例如,“适合十三岁以下儿童”。与应用相关联的一个或多个评论可以指示该应用适于五岁的儿童。通过组合应用数据322,提取模块314可以提取“5到13”的年龄属性。作为另一示例,应用数据322的第一实例可以包括说明应用“适合使用计算机向朋友进行视频通话”的意见。来自开发者描述的应用数据322的第二实例可以说明“进行因特网通话”。基于两个数据项的分析,提取模块314可以提取或导出针对应用的“因特网视频会议”类别属性。应当理解,所述数据项均不能单独指示应用能够执行“因特网视频会议”。然而,合起来,这种属性可以被提取或导出。
通过对所接收数据的不同组合的分析,属性的提取可以通过任何适当的方式进行。例如,提取模块314可以组合参考相同版本应用332或规范应用330的应用数据322的两个或更多个实例。在组合应用数据322之后,提取模块314可以针对各种模式、关联性或关键字匹配来分析经组合的应用数据322以提取属性。
在某些实现方式中,提取模块314可以基于所接收的应用数据322的源和/或类型提取属性。例如,应用数据322可以指示应用具有低安全风险。如果数据源110是受信源并且如果指示应用是低安全风险的部分以结构格式接收,则提取模块314可以从应用数据322提取安全属性。相反,如果数据源110不是受信源或者如果应用数据322以非结构格式接收,则提取模块314可以不提取指示应用是低安全风险的属性。
在某些实现方式中,响应于接收搜索查询的结果提取模块314可以通过监控伙伴设备120的行为提取应用的属性。例如,如果针对特定功能的查询导致具体规范应用330被提供给伙伴设备120并且伙伴设备120随后下载对应于规范应用330的版本应用332,则提取模块314可以推断规范应用330执行搜索查询中暗示的功能并且可以提取指示相同功能的属性。
在某些实现方式中,提取模块314根据应用搜索具体模式410将每个提取的属性分类。由于提取模块314提取属性,每个属性、文本、数值、二进制等可以根据应用搜索具体模式410进行标签。提取模块314可以基于用于提取属性的规则确定属性的分类。
提取模块314基于所提取的属性334和应用具体搜索模式410生成或更新应用代表315。在某些实现方式中,对应于规范应用330及其对应的版本应用332的标签属性334的集合定义应用代表315。通过此方式,应用代表315包括规范代表的属性334和一个或多个版本应用332的每个版本应用332的相应属性334。当生成新的应用代表315时,提取模块314可以针对其对应的版本应用332层级式布置规范应用330。此外,提取模块314可以向正确的版本应用332指派所提取的属性。在某些实现方式中,规范应用330可以继承一个或多个其对应的版本应用332的版本属性334b。例如,核心属性(诸如应用发布者和应用开发者)可以从版本应用332继承。在某些实现方式中,通用属性334a可以从规范应用330传播到版本应用332。例如,整体下载属性414c可以从规范应用330传播到新定义的版本应用332。
在某些实现方式中,提取模块314还更新已经在搜索索引400中先前存在的应用代表315。例如,如果提取模块314标识对应于先前标识的版本应用332的应用数据322,例如,版本应用332的新评论,则提取模块314可以从应用数据322提取属性继而将该属性***应用代表315。此外,在某些实现方式中提取模块314将时间戳与某些类型的属性相关联,如越近的属性可能比越老的属性更中肯。例如,针对评论或评级的任何属性可以具有与其相关联的时间戳以便保证越近的评论或评级被给予比更老评论或评级更多的相关性。
索引模块316更新搜索索引400。索引模块316可以向搜索索引400添加新生成的应用代表315。如果索引模块316正在更新搜索索引400,则索引模块316可以利用其对应的更新应用代表315重写先前的应用代表315。
在生成模式代表之后,索引模块316生成或更新搜索索引400或具有应用代表315的搜索索引。在某些实现方式中,搜索索引400可以部分基于应用代表415的属性的权重组织、构建和配置。在某些实现方式中,属性的权重可以基于属性的具体类别。说明性地,核心或硬元数据属性可以比软元数据属性更重地加权。权重还可以基于针对搜索索引400的具体上下文和/或受众。
在某些实现方式中,索引模块316生成用于促进基于功能的应用搜索的单个搜索索引400。在某些实现方式中,索引模块316生成多个搜索索引400,其中每个索引存储并组织针对数据的不同集合或部分的应用。索引模块316可以基于一个或多个应用过滤器和/或属性过滤器生成多个搜索索引400。具体地,索引模块316可以向应用代表施加应用过滤器以便选择由提取模块314先前生成的应用代表的总数的子集。说明性地,索引模块316可以生成针对苹果iOS平台的具体索引。如此,索引模块316可以向应用集合应用过滤器,从而针对为iOS平台具体开发的应用进行过滤。因此,应用代表的子集可以被标识,其中每个应用均针对iOS平台开发。
在选择针对搜索索引的应用子集之后,索引模块316可以基于各种属性过滤器生成针对特定子集的搜索索引。更具体地,属性过滤器可以至少部分基于搜索索引400将用于的上下文和/或受众提供针对应用子集的各种属性的不同权重。例如,特定索引可以专用于企业应用商店上下文。如此,过滤器可以将与应用价格有关的特定属性加权相对低,这是因为在商业购买的上下文中价格较少被考虑。在某些实现方式中,权重可以供索引模块316用于唯一地并优选地配置针对应用特定子集的搜索索引。换言之,属性过滤器可以针对不同的上下文和/或受众使得索引与其他搜索索引不同地组织。
在某些实现方式中,索引模块316可以生成部分包括冗余信息的多个索引以便改进性能和/或可靠性。例如,索引模块316可以生成三个冗余搜索索引400,所述搜索索引400存储针对被确定流行的应用的数据。索引模块316可以另外生成两个搜索索引400,所述搜索索引400存储针对被确定较不流行的应用的数据。备选地,索引模块316可以通过与RAID-5盘模式的方式跨多个索引分布数据以改进读取冗余。
在某些实现方式中,搜索索引400可以被离线生成并且以“只读”方式用于改进高速缓存和搜索性能。
在某些实现方式中,索引模块316可以通过分析从伙伴接收的搜索查询自动生成新的搜索索引400。例如,索引模块316可以确定若干伙伴已经针对过去一个月参考新平台的应用进行了例程搜索。因此,索引模块316可以自动生成包括仅针对新平台开发的应用的新搜索索引400。在某些实现方式中,索引模块316可以动态更新搜索索引。具体地,当新数据被标识时,索引模块316可以自动更新搜索索引400而不是重新生成搜索索引400。
图6中描述的数据处理服务器300的数据流被提供仅用于示例而不旨在限制。此外,数据处理服务器300可以从许多不同源110分析应用数据322并且可以生成/更新对应于许多不同应用的应用代表315。数据处理服务器300的变体是预期的并且在本公开的范围内。此外,所公开的模块(例如,提取模块314)可以被分成子模块。
图8图示了用于生成和/或更新搜索索引400的方法350的操作的示例布置。出于解释的目的,方法350参考图5和图6的数据处理服务器300进行解释。然而,所公开的技术不旨在受限于图5和图6的数据处理服务器300。此外,方法350针对单个应用代表315进行解释。方法350可以被执行以生成/更新多个应用代表而不脱离本公开的范围。
在操作352,引入模块312从数据源110获得应用数据322。如先前所述,引入模块312可以被动和/或主动收集应用数据322。当被动获得应用数据322时,引入模块312可以直接从数据源110接收应用数据。例如,应用开发者110a、应用评论者110d或博客者110e可以向数据处理服务器300传输应用数据322,使得应用数据322可以被包括在应用代表中。当主动收集应用数据322时,引入模块312可以被配置为实现一个或多个web爬虫或者监控已知数据源110以收集应用数据322。在这些实现方式中,引入模块312可以通过针对具体词语或词语的组合进行搜索定位相关应用数据。
在操作354,提取模块314基于应用数据322标识一个或多个版本应用322和对应于该一个或多个版本应用322的规范应用330。提取模块314可以实现启发技术以通过将版本应用322的标题名称、开发者名称和应用URL与每个规范应用330进行比较来将版本应用322标识到对应的规范应用330。例如,提取模块314可以从所标识的版本应用332的名称中移除任意常用词语,例如,“免费”、“付费”、“精简版”、“测试”、“HD”、“Android”、“iOS”、“微软”。提取模块314将所标识的版本应用332的名称进行比较并且确定所标识版本应用332的常用标题或主标题。提取模块314继而可以将常用或主标题与已知规范应用330的列表进行比较。如果对应规范应用330被标识,则所标识的版本应用332与对应规范应用合并。提取模块314还可以应用其他启发以确定一个或多个应用版本332是否可以适合在已知规范应用330下。否则,提取模块332创建新的规范应用330,并且可以使用所述主或常用名称作为新规范应用330的名称。提取模块314可以标签用于标识版本应用的应用数据322的任何实例以指示该实例与版本应用332相关。在某些实现方式中,提取模块314合并与相关联规范应用330或版本应用332相关的应用数据322使得应用的属性可以从中提取。
在操作356,提取模块314从应用数据322提取规范应用330和版本应用332的属性334。如上文所述,提取模块314可以实现数据挖掘、自然语言处理、启发和/或基于规则的推断以从应用数据322提取一个或多个属性334。如果应用数据322的实例具体为特定版本应用,则从中提取的属性归因于该特定版本应用。如果应用数据322的实例通常参考规范应用330,则从中提取的属性归因于规范应用330。
在操作358,提取模块314基于所提取的属性334生成或更新应用代表315。在规范应用和一个或多个版本应用被新发现的意义上,提取模块314基于规范应用330、一个或多个版本应用332和所提取的属性334生成新的应用代表315。在对应于规范应用的应用代表315已经存在于搜索索引400中的意义上,提取模块314可以通过向应用代表315添加任意新提取的属性334来更新应用代表315。在操作360,索引模块316利用新或更新的应用代表315更新搜索索引400。在新应用代表315的情况下,索引模块316可以向搜索索引400添加新应用代表315。在更新的应用代表315的情况下,索引模块316可以利用应用代表315的更新版本重写应用代表315的较老版本。在数据处理服务器300实现多个搜索索引400的实现方式中,索引模块316可以确定适当的搜索索引400基于新或者更新的应用代表315的属性进行更新。
针对图8描述的方法350被提供仅用于示例并不旨在进行限制。方法350的变体是预期的并且在本公开的范围内。
应用搜索模块
图9是图示了应用搜索服务器500的示例组件的示意图。应用搜索服务器500可以包括处理设备502、存储器设备504、网络接口设备506和存储设备508。应用搜索服务器500可以包括图8中未示出的附加组件。注意,在某些实现方式中,处理设备502、存储器设备504和网络接口设备506类似于针对数据处理服务器300(图5)所述的组件。此外,在某些实现方式中,数据处理服务器300和应用搜索服务器500可以在一个或多个相同物理计算设备上实现。
在所示示例中,处理设备502执行查询处理模块512、初始集合确定模块514、集合减少模块516、结果集合处理模块518、评分模块520、后置处理模块522和行为分析模块524。存储器设备504可以存储包含从伙伴设备120接收的搜索查询的查询包装器530。存储设备508可以存储用于基于搜索查询对结果进行评分的一个或多个学习的评分模型526。
图10是图示了图9的应用搜索服务器500的示例数据流的数据流图。
在操作中,查询处理模块512经由网络接口设备506从伙伴设备120(图1)接收搜索查询。该搜索查询可以是文本串,例如,一个或多个词语和/或数字的组合。在某些实现方式中,搜索查询被传输到查询包装器中的应用搜索服务器500。如这里所使用的,术语“查询包装器”可以包括包含搜索查询和附加上下文数据的任何适当数据结构。附加上下文数据可以包括例如关于伙伴设备120的信息(例如,设备类型和/或设备操作***)、伙伴设备120的用户(例如,简档信息)和/或伙伴设备120的位置。查询处理模块512可以基于搜索查询的内容以及可能是附加上下文数据提取搜索查询的查询特征。查询处理模块512可以使用数据挖掘、自然语言处理和基于规则的推断技术提取查询特征。
查询特征的示例包括搜索查询中的若干词语、搜索查询的语言、查询中参考的应用、搜索查询的预测概念、搜索查询的期望类别(例如,“旅行”)、“游戏”特征(搜索查询请求游戏的可能性)、请求的流行度(例如,“超过50万的下载”)和/或所接收搜索查询的频率。例如,查询包装器Q可以包括搜索查询“用于教导三岁大儿童拼写的教育游戏”并且上下文信息指示该请求来自查询处理模块512可以从查询包装器提取以下查询特征:<Language=“English”;Number of Words=10;Query Category=“Games”;Query AgeRang=2-4;…Device OS=iOS>。在某些实现方式中,查询处理模块512生成包含一个或多个查询特征的特征向量。
查询处理模块512可以进一步基于查询包装器生成子查询534的集合。如这里所使用的,术语“子查询”可以指的是可以从查询包装器导出的任何查询。参考上文提供的示例查询包装器Q,以下子查询的非详尽集合可以从Q生成:“针对iOS的应用”、“儿童应用”;“游戏应用”、“教育应用”、“教育游戏”、“游戏”、“教育”、“英语应用”和“年龄2到4的应用”。在某些实现方式中,查询处理模块512从搜索查询中移除所有停用词语,例如,“一”、“一个”、“针对”和“该”以及/或者阻止搜索查询中的词语,即,将屈折词减少到其词干。此外,查询处理模块512可以确定搜索查询中剩余词语或数字的所有可能组合。在某些实现方式中,查询处理模块512标记查询或每个子查询中的每个词语。
初始集合确定模块514可以基于子查询534的集合从搜索索引400确定应用的预先考虑集合536。预先考虑集合536是应用代表315的广泛集合,使得预先考虑集合536中的成员是与子查询534的至少一个子查询具有某些相关性的应用代表。例如,响应于上文标识的查询的示例集合,搜索索引400可以响应于上文标识的子查询的集合返回针对儿童的每个应用的每个应用代表、每个游戏应用、与拼写有关的每个应用等。在某些实现方式中,初始集合确定模块514标识具有其特征的至少一个特征中与子查询中一个或多个词语或符号相同的一个或多个词语或符号的任意应用代表315。初始集合确定模块514包括预先考虑集合536中的任意此类应用代表315。附加地或备选地,初始集合确定模块514可以实现用于标识预先考虑集合536的其他适当技术。
在某些实现方式中,预先考虑集合536包括每个应用代表315的标识符和应用的应用代表,例如,规范应用330和/或一个或多个版本应用332的特征。因此,预先考虑集合P可以由以下矩阵表示:
P=[<ID,FR>]
其中ID是特定应用代表的标识符,而FR是定义特定应用代表的特征的结果特征向量。注意,应用代表315的特征可以从应用代表315的属性导出。每个应用代表315的结果特征向量可以包括来自应用代表的版本应用332或规范应用330的任意应用的特征。例如,特征向量可以包括从应用代表提取的文本特征,例如,应用的名称、应用的开发者和应用的平台信息。在另一示例中,特征向量包括由初始集合确定模块514(或另一模块)计算或确定非文本特征,诸如其标题中词语的数目、星级评级、权威评分、“游戏”评分和机器学***台应用的流行度等。特征的上文示例是非详尽的并且不旨在用于限制。
集合减少模块516接收预先考虑集合536并且将其减少到考虑集合538。该考虑集合538包括最相关的应用代表315。由于预先考虑集合536包括任意潜在相关的应用代表,因此预先考虑集合536可以是要求大量计算资源的大小。如此,集合减少模块516将预先考虑集合536的大小减少成可以被更快并且更便宜(从计算的立场)进行处理的更小的考虑集合538。在某些实现方式中,集合减少模块516通过考虑应用代表的特征的具体减少集合来削减预先考虑集合536。例如,每个应用代表可以包括五个或更多个不同的特征。集合减少模块516可以考虑减少的特征集合,例如,四个或五个具体特征以削减预先考虑集合536。通过考虑更少的特征,集合减少模块516可以相对快速地减少所标识应用的初始集合。集合减少模块516可以考虑任何适当的特征以削减预先考虑集合536。
在某些实现方式中,集合减少模块516基于减少的特征集合通过向预先考虑集合536中的每个应用代表315指派质量评分来削减预先考虑集合536。质量评分可以基于减少的特征集合映射到搜索查询及其查询特征的程度生成。例如,如果应用具有相对高的流行度特征,则针对应用代表的质量评分可以相对高。作为另一示例,集合减少模块516可以对搜索查询中标识的一个或多个项或概念加权。之后,集合减少模块516可以基于应用与查询的所加权的项或概念的关联度生成针对应用的评分。具体地,与具有更高权重的项或概念相关联的那些应用可以具有更高的质量评分。在某些实现方式中,集合减少模块516实现Lucene以确定考虑集合中应用代表315的质量评分。
在某些实现方式中,集合减少模块516通过丢弃或移除具有质量评分小于或等于质量评分阈值的应用代表来削减预先考虑集合536。例如,质量评分可以范围从0到1。在削减预先考虑集合536时,集合减少模块516可以移除不具有质量评分在阈值(例如,0.7)以上的任何应用代表315。备选地或附加地,集合减少模块516可以通过选择具有最高质量评分的N个应用代表来削减预先考虑集合536,其中N是大于1并且可能大于一百的整数,例如,N=250。
考虑集合538C可以由以下矩阵表示:
C=[<ID,FR>]
非常像预先考虑集合536P,考虑集合538C包括每个应用代表315的标识符及其特征。考虑集合538是预先考虑集合536的子集。
结果集合处理模块518基于应用的特征和查询特征532确定针对每个应用代表315的一个或多个附加特征(被称为“查询/结果特征”)。应用代表315的查询/结果特征是鉴于搜索查询的应用特征。查询/结果特征的非限制、非详尽列表包括:应用标题中查询项之间的距离、应用已经响应于一个或多个查询项被选择的频繁程度。每个应用代表315的查询/结果特征可以通过查询/结果特征向量表示。结果集合处理模块518可以利用查询/结果特征向量扩充考虑集合538以获得初始结果集合540。针对考虑集合538中的每个应用代表,结果集合处理模块518向描述应用特征的特征向量添加查询/结果特征向量。因此,初始结果集合540R可以由以下矩阵表示:
R=[<ID,FR,FQ/R>]
其中ID是特定应用代表的标识符,FR是定义特定应用代表的特征的特征向量,以及FQ/R是对应于特定应用代表和搜索查询上计算的查询/结果特征向量。
评分模块520接收初始结果集合540和查询特征向量并且确定针对初始结果集合540中每个应用代表的评分。针对应用的整体评分可以指示应用匹配所接收查询和/或查询的上下文的程度。在某些实现方式中,评分模块520基于定义应用代表315的特征的特征向量FR、查询/结果特征向量FQ/R和/或查询具体特征Fq。在某些实现方式中,评分模块520使用一个或多个评分模型526对每个应用代表315进行评分。评分模型是基于输入参数集合预测/确定评分的学习的数学模型或公式。评分模型526可以是能够捕获实现的线性或非线性模型。评分模型526接收应用代表315的特征、对应于应用代表315的查询/结果特征和查询特征,并且输出指示应用代表315针对搜索查询的相关程度的评分。在某些实现方式中,评分模块520可以基于其相应评分对初始结果集合540中的每个应用代表315进行评级。例如,评分模块520可以从最高评分向最低评分对应用代表315进行评级。
评分模型526可以通过监督和/或非监督的机器学习技术的方式生成。例如,人类主体可以查看搜索查询以及响应于该搜索查询提供的应用,并且可以鉴于该搜索查询提供应用的评分。人类主体可以针对大量搜索查询和应用组合执行此任务,由此向学习者提供大量数据点。使用已知机器学习技术(例如,梯度增加的决策树),学习者基于应用的特征、对应于应用的查询/结果特征和各搜索查询的查询特征生成评分模型。评分模型526可以通过任何其他适当的方式生成。
后置处理模块522可以从初始结果集合540中移除具有评分在阈值以下的应用代表315,或者可以从初始结果集合540中移除具有评分小于M个最高评分的应用代表315的应用代表315。例如,后置处理模块522可以从初始结果集合540中移除不在四十个最高评分的应用代表315的任何应用代表315。剩余的应用代表315组成结果集合542。后置处理模块522还可以获得可以与结果集合542中的每个应用代表315一起显示的数据,包括但不限于对应于应用代表315的图标和/或对应于应用代表315的一个或多个截图。在某些实现方式中,后置处理模块522可以向伙伴设备120通信附加数据和结果集合542的内容,使得所述内容可以向用户显示。
虽然图10中未示出,但是行为分析模块524监控伙伴设备120提供查询的动作。例如,***可以确定应用代表何时被最终查看或者对应版本应用何时被伙伴设备120下载。此信息可以被分析以进一步提取针对应用的特征。所提取的特征可以被分类为行为特征,并且被存储为应用代表的一部分。所提取的特征可以用于稍后影响由应用搜索服务器500执行的后续搜索的性能。
图10中所述应用搜索服务器500的数据流被提供仅用于示例并不旨在用于限制。应用搜索服务器500的变体是预测的并且在本公开的范围内。
图11图示了用于处理搜索查询的方法550的操作的示例布置。出于解释的目的,方法550参考图9和图10的应用搜索服务器500进行解释。
在操作560,查询处理模块512从伙伴设备120接收搜索查询。如先前所述,搜索查询可以是词语和/或数字的串并且可以在查询包装器530中通信。查询包装器530可以包括附加文本信息,诸如伙伴设备120(或者向伙伴设备120提供搜索查询的另一设备)的平台、伙伴设备120的位置、伙伴设备120的用户和/或由用户选择的一个或多个过滤器。
在操作562,查询处理模块512从搜索查询的文本和附加上下文信息(如果可适用)提取该搜索查询的查询特征532。查询处理模块512可以提取如下特征,诸如搜索查询中的词语/数字量、搜索查询中的若干词语、搜索查询的语言、查询中参考的应用、搜索查询的预测概念、搜索查询的期望类别、“游戏”特征、所请求的流行度特征和/或所接收搜索查询的频率。查询处理模块512可以通过任意适当的方式提取查询特征532,并且查询特征532通过其提取的方式取决于特征的类型。
在操作566,查询处理模块512基于所接收的查询和附加上下文信息(如果可适用)生成子查询534的集合。查询处理模块512可以从搜索查询移除任何停用词。查询处理模块512还可以阻止搜索查询中的剩余词语。查询处理模块512继而可以确定搜索查询和文本信息中词语和/或数字的各种组合(直到所有可能的组合),由此生成子查询534的集合。
在操作568,初始集合确定模块514基于子查询的集合标识应用的预先考虑集合536。应用的预先考虑集合536可以包括一个或多个应用代表315。查询处理模块512通过利用子查询534查询搜索索引400来标识预先考虑集合536。搜索索引400返回由搜索查询的至少一个暗示的任何应用代表315。此外,如果查询包装器530包括一个或多个过滤器选择,则搜索索引400仅返回具有过滤器中指示的标识的应用代表。例如,如果查询包装器530包括“iOS”过滤器选择,则查询包装器530可以仅包括具有针对该iOS平台配置的版本应用332的应用代表315。
在操作570,集合减少模块516将预先考虑集合536减少到考虑集合538。考虑集合538包含考虑集合536中最相关的应用。查询处理模块512分析预先考虑集合536中指示的应用代表315中定义的特征的预先确定的子集以标识最相关的应用。在某些实现方式中,实现Lucene以确定针对预先考虑集合536中每个应用代表315的质量评分并且基于该评分从预先考虑集合536选择考虑集合528。
在操作572,结果集合处理模块522基于考虑集合538和查询特征生成初始结果集合540。在某些实现方式中,查询处理模块512针对考虑集合538中的每个应用代表315确定查询/结果特征的集合。查询/结果特征可以包括但不限于应用标题中查询项之间的距离、应用已经响应于一个或多个查询项被选择的频繁程度。结果集合处理模块518以任何适当的方式确定应用代表315的查询/结果特征。在某些实现方式中,结果集合处理模块518通过利用每个应用代表315的查询/结果特征扩充考虑集合538来生成初始结果集合540。
在操作574,评分模块520基于初始结果集合540和查询特征532对初始结果集合540中包含的每个应用代表315进行评分。针对每个应用代表315,评分模块520可以将应用代表315的特征、对应于应用代表的查询/结果特征和查询特征532输入至评分模型526。评分模型526输出针对每个应用代表315的评分。在操作576,后置处理模块522可以基于评分的应用代表315确定结果集合542。例如,评分模块520可以选择M个最高评分的应用代表315或者可以包括结果集合542中具有评分在阈值以上的任意应用代表315。后置处理模块522还可以获得用于在伙伴设备120显示结果的任何数据,例如,应用的截屏或与应用相关联的图标。在操作578,结果集合542被传输到伙伴设备120用于显示。
在操作580,行为分析模块524可以监控伙伴设备120的行为以确定用户是否选择了所列应用中的任意应用。例如,如果用户选择了结果集合542中所列应用之一用于下载,则行为分析模块524可以更新搜索索引400中所选应用的应用代表315。通过此方式,应用搜索服务器500可以接收辅助应用搜索服务器500的反馈并且数据处理服务器300更好地理解应用数据322和/或搜索查询的含义。
针对图11描述的方法550被提供仅用于示例并不旨在用于限制。方法550的变体是预测的并且在本公开的范围内。
在某些实现方式中,应用搜索服务器500向目标广告附加地提供最终结果列表。广告的标识可以类似于搜索结果的标识。例如,每个广告可以与该广告促进的应用的某个功能和其他特征相关联。广告可以至少部分基于该广告的功能和其他特征与伙伴提供的搜索查询的匹配程度被标识用于向该伙伴呈现。
用于基于功能的应用搜索的机器学习过程
如所述,应用搜索***100使用机器学习的模型来促进若干不同的任务。在一个方面,机器学习的模型用于促进元属性的生成,诸如文本相关和质量。机器学习的模型另外用于促进所标识结果的整体评分。
为了生成机器学***均查询项频率、包含所有查询项的评论的数目、针对评论的BM-25、针对描述的BM-25、匹配的第一位置、标题覆盖、关于查询项的频率信息等。
一旦接收到具有目标评分的属性或特征的输入向量,过程便产生模型。在某些实现方式中,过程可以最小化训练集合和候选模型(例如,均方差)某些误差函数。交叉验证还可以被执行以估计任何给定模型的准确度,并且比较不同的模型以帮助选择最好的模型。
所生成的模型继而可以被应用于包括相同属性分类的输入。响应于模型的应用,处理输出预测评分(在此情况下是预测人类判断的值)。整体准确度是训练集合数据的大小、分布和准确度、属性的质量(代表性/准确性)和机器学习过程的代表身份的函数。
这里所述的实现方式至少部分基于功能有益地允许应用的有效和高效的标识。更具体地,当前搜索引擎是文档为中心的并且利用字面文本匹配技术。具体地,当前搜索引擎根据基于字面文本的匹配通过标识参考应用的文档间接地定位应用。然而,因为针对应用的许多搜索查询指定期望的应用功能,因此当前搜索引擎无法有效和一致地向用户标识感兴趣的应用。
相反,实现方式基于包括应用的功能属性的应用代表通过执行搜索直接标识应用。因此,实现方式基于对应用的功能方面的匹配支持应用的标识。因此,由这里所述实现方式生成的搜索结果可以比当前搜索引擎生成的搜索结果具有更高的质量。
计算架构
图12示出了示例计算设备1100的图解表示,在该示例计算设备1100内可以执行用于使该计算设备1100执行这里讨论的方法中的任何一种或者多种方法的指令1124(例如,软件)。在某些实现方式中,计算设备1100作为独立设备来操作或者可以被连接(例如,联网)到其它计算设备1100。在联网部署中,计算设备1100可以在服务器-客户端网络环境中在服务器计算设备或者客户端设备的能力内操作,或者在对等(或者分布式)网络环境中作为对等计算设备来操作。
计算设备1100可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能电话、web装置、网络路由器、交换机或者桥接器或者能够执行指令124(依序或者以别的方式)的任何计算设备,这些指令指定该计算设备1100将进行的动作。另外,尽管仅图示了单个计算设备1100,但是术语“计算设备”还可以用来包括个别或者联合执行指令124以执行这里讨论的方法中的任何一种或者多种方法的计算设备的任何汇集。
示例计算设备1100包括一个或多个处理器1102(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或者多个专用集成电路(ASIC)、一个或者多个射频集成电路(RFIC)或者这些处理器的任何组合)、主存储器1104和静态存储器1106,其被配置用于经由总线1108相互通信。计算机***1100还可以包括图形显示单元1110(例如,等离子体显示面板(PDP)、液晶显示器(LCD)、投影仪或者阴极射线管(CRT))。计算设备1100还可以包括字母数字输入设备1112(例如,键盘)、光标控制设备1114(例如,鼠标、跟踪球、操纵杆、运动传感器或者其它指点工具)、存储单元1116、信号生成设备1118(例如,扬声器)和网络接口设备1120,其也被配置用于经由总线1108通信。
存储单元1116包括在其上存储指令1124(例如,软件)的机器可读介质1122,这些指令体现这里描述的方法或者功能中的任何一种或者多种方法或者功能。指令1124(例如,软件)也可以在它们由计算设备1100执行期间完全或者至少部分驻留于主存储器1104内或者处理器1102(例如,处理器的高速缓冲存储器内)内,主存储器1104和处理器1102也构成机器可读介质。可以经由网络接口设备1120通过网络1126传输或者接收指令1124(例如,软件)。
尽管在一个示例实现方式中将机器可读介质1122示出为单个介质,但是术语“机器可读介质”应当用来包括能够存储指令(例如,指令1124)的单个介质或者多个介质(例如,集中式或者分布式数据库或者关联的高速缓存和服务器)。术语“机器可读介质”还应当用来包括能够存储用于由计算设备1100执行的指令(例如,指令1124),并且使得计算设备1100执行这里公开的方法中的任何一种或者多种方法的任何介质。术语“机器可读介质”包括但不限于固态存储器这一形式的数据贮存库、光学介质和磁介质。
附加配置考虑
在本说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然一个或多个方法的独立操作被图示和描述为单独的操作,但是一个或多个独立操作可能同时执行,并且不需要以图示的次序执行操作。示例性配置中被表示为单独组件的结构和功能可以被实现为组合的结构或组件。类似地,表示为单个组件的结构和功能可以被实现为单独组件。这些和其他变体、修改、添加和改善落在本主题的范围内。
特定实施方式在这里被描述为包括逻辑或很多组件、模块或机制。模块可以构成软件模块(例如,在机器可读介质上体现的代码)或硬件模块。硬件模块是能够执行特定操作的有形单元,并且可以以特定的方式进行配置或布置。在示例性实施方式中,一个或多个计算机***(例如,单机、客户端或服务器计算机***)或者计算机***的一个或多个硬件模块(例如,处理器或处理器组,例如,处理器102)可以通过软件(例如,应用或应用部分)被配置为进行操作以执行如这里描述的特定操作的硬件模块。
在各种实施方式中,硬件模块可以被机械地或电子地实现。例如,硬件模块可以包括专用电路或永久配置的逻辑(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))以执行特定操作。硬件模块还可以包括可编程逻辑或电路(例如,包括在通用处理器或其它可编程处理器内),其由软件临时配置为执行特定操作。应当认识到,用于机械地、以专用和永久配置的电路或者以临时配置的电路(例如,由软件配置的)实现硬件模块的决定可以由成本和时间考虑来驱动。
这里描述的示例性方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置成执行相关操作的一个或多个处理器来执行。不论临时还是永久配置,这样的处理器可以构成进行操作以执行一个或多个操作或功能的处理器实现的模块。这里涉及的模块可以在一些示例实施方式中包括处理器实现的模块。
一个或多个处理器还可以进行操作以支持在“云计算”环境中或作为“软件即服务”(SaaS)的相关操作的性能。例如,至少一些操作可以由计算机组(作为包括处理器的计算设备的示例)来执行,这些操作可经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,应用程序接口(API))来访问。
特定操作的执行可以分布在一个或多个处理器中,而不仅驻留在单个计算设备内,而是跨多个计算设备来部署。在一些示例性实施方式中,一个或多个处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例性实施方式中,一个或多个处理器或处理器实现的模块可以跨多个地理位置来分布。
本说明书的一些部分在对机器存储器(例如,计算机存储器)内存储为比特或二进制数字信号的数据的操作的符号表示或算法方面而提出。这些算法或符号表示是由数据处理领域的普通技术人员使用以对本领域技术人员传达其工作实质的技术的示例。如这里使用的“算法”是产生期望结果的类似处理或操作的自洽序列。在该上下文中,算法和操作涉及对物理量的物理操纵。通常但不是必须的,这样的量可以采取能够由计算设备存储、访问、传送、组合、比较或以其他方式操纵的电、磁或光信号的形式。有时并且主要是出于一般使用的原因,方便地使用诸如“数据”、“内容”、“比特”、“值”、“元素”、“符号”、“字符”、“项”、“编号”、“数字”等的词语来指代这样的信号。然而,这些词语仅是方便的标签并且要与适当的物理量相关联。
除非特别地另外声明,使用诸如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等的词语的这里的讨论可以指计算设备(例如,计算机)的动作或过程,该计算设备可以对表示为在一个或多个存储器(例如,易失性存储器、非易失性存储器或其组合)、寄存器或接收、存储、传送或显示信息的其他机器组件内的物理(例如,电、磁或光)量的数据进行操纵和转换。
如这里使用的对“某些实现方式”或“实现方式”的任何引用指结合实施方式描述的具体元素、特征、结构或特征被包括在至少一个实施方式中。短语“在某些实现方式中”在本说明书中的不同位置中的出现不一定全部涉及同一实现方式。
一些实施方式可以使用表达“耦合”和“连接”及其派生词来进行描述。例如,一些实施方式可以使用术语“耦合”来描述以指示两个或更多个元件处于直接物理或电接触。然而,术语"耦合"还可以指两个或更多个元件彼此不直接接触,但是仍然彼此协作或交互。实施方式并不限于该上下文。
如这里使用的术语“包括”、“包括有”、“包含”、“包含有”、“具有”、“含有”或其任何其他变体意在涵盖非排他性包括。例如,包括一系列元素的过程、方法、物品或装置不必仅限于那些元素,而是可以包括没有明确列出或者对这样的过程、方法、物品或装置所固有的其它元素。另外,除非另外明确地相反说明,“或”指兼或而非互斥或。例如,条件A或B通过下面中的任何一个来满足:A为真(或存在)并且B为假(或不存在),A为假(或不存在)并且B为真(或存在),以及A和B都为真(或存在)。
另外,“一”或“一个”的使用用于描述本实施方式的元件和组件。这样仅仅是为了方便并且给出本发明的一般含义。该描述应当被解读为包括一个或至少一个,并且单数也包括复数,除非以其他方式明显指出。
在阅读本公开时,本技术领域的技术人员将通过这里公开的原理理解用于在高级和本机代码之间通信的***和过程的其他备选结构和功能设计。因此,尽管已经说明和描述了具体实施方式和应用,但是应当理解,所公开的实施方式不限于这里公开的确切构成和组件。可以在不脱离所附权利要求所定义的精神和范围的情况下在这里公开的方法和装置的布置、操作和细节中做出对于本领域技术人员显而易见的各种修改、改变和变化。
Claims (40)
1.一种用于维护用于支持应用搜索的搜索索引的方法,所述方法包括:
在处理设备处从多个数据源接收应用数据,所述应用数据是描述一个或多个应用的文本,其中:
所述多个数据源包括第一电子应用市场和第二电子应用市场,以及
所述应用数据包括(i)从所述第一电子应用市场接收的第一应用数据和(ii)从所述第二电子应用市场接收的第二应用数据;在所述处理设备处标识所述应用数据中参考的应用,其中:
所述第一应用数据描述所述应用的第一应用版本,以及
所述第二应用数据描述所述应用的第二应用版本;
在所述处理设备处基于应用搜索具体模式从参考所述应用的所述应用数据来生成对应于所述应用的多个属性,所述应用数据包括从所述第一电子应用市场接收的所述第一应用数据和从所述第二电子应用市场接收的所述第二应用数据,其中所述应用搜索具体模式定义应用代表的结构和能够用于描述给定应用的一个或多个属性类型;
在所述处理设备处基于所述多个属性和所述应用搜索具体模式来生成所述应用的应用代表,所述应用代表定义所述应用的所述属性,包括所述应用的文本描述和评级并且基于来自所述多个数据源的所述应用数据;以及
基于所述应用代表更新搜索索引。
2.根据权利要求1所述的方法,其中所述应用数据以非结构格式、结构格式或半结构格式中的至少一种格式接收。
3.根据权利要求1所述的方法,其中所述应用代表参考规范应用和一个或多个版本应用,所述规范应用代表所述一个或多个版本应用。
4.根据权利要求3所述的方法,其中标识所述应用包括在所述处理设备处基于所述应用数据来标识所述规范应用和所述一个或多个版本应用。
5.根据权利要求3所述的方法,其中生成所述多个属性包括:
在所述处理设备处从所述应用数据提取对应于所述规范应用的多个通用属性;以及
在所述处理设备处从所述应用数据提取针对所述一个或多个版本应用的每个版本应用的多个版本属性。
6.根据权利要求5所述的方法,其中至少所述多个版本属性的子集由所述多个通用属性继承。
7.根据权利要求5所述的方法,其中生成所述应用代表包括根据所述应用搜索具体模式组织所述多个通用属性和针对所述一个或多个版本应用的每个版本应用的所述多个版本属性。
8.根据权利要求1所述的方法,其中所述搜索索引对存储多个应用代表的可搜索数据库进行索引,每个应用代表表示不同的应用。
9.根据权利要求8所述的方法,其中所述搜索索引通过所述多个应用代表的属性可搜索,其中响应于针对特定属性的查询所述搜索索引返回具有所述特定属性的一个或多个应用代表。
10.根据权利要求1所述的方法,其中生成所述属性包括:
在所述处理设备处组合应用数据的两个或更多个实例;以及
在所述处理设备处基于所述应用数据的所述组合中包含的文本生成属性,其中所述属性不完全地包含在所述应用数据的所述实例的任意一个实例中。
11.一种服务器,包括:
存储设备,其上存储有搜索索引,所述搜索索引对多个应用代表进行索引;以及
处理设备,执行计算机可读指令,所述计算机可读指令使得所述处理设备:
从多个数据源接收应用数据,其中:
所述多个数据源包括第一电子应用市场和第二电子应用市场,以及
所述应用数据包括(i)从所述第一电子应用市场接收的第一应用数据和(ii)从所述第二电子应用市场接收的第二应用数据;
标识所述应用数据中参考的应用,其中:
所述第一应用数据描述所述应用的第一应用版本,以及
所述第二应用数据描述所述应用的第二应用版本;
基于应用搜索具体模式从参考所述应用的所述应用数据生成对应于所述应用的多个属性,所述应用数据包括从所述第一电子应用市场接收的所述第一应用数据和从所述第二电子应用市场接收的所述第二应用数据,其中所述应用搜索具体模式定义应用代表的结构和能够用于描述给定应用的一个或多个属性类型;
基于所述多个属性和所述应用搜索具体模式生成所述应用的应用代表,所述应用代表定义所述应用的所述属性,包括所述应用的文本描述和评级并且基于来自所述多个数据源的所述应用数据;以及
基于所述应用代表更新搜索索引。
12.根据权利要求11所述的服务器,其中所述应用数据以非结构格式、结构格式或半结构格式中的至少一种格式接收。
13.根据权利要求11所述的服务器,其中所述应用代表参考规范应用和一个或多个版本应用,所述规范应用与所述一个或多个版本应用中的每个版本应用相关联。
14.根据权利要求13所述的服务器,其中标识所述应用包括:
从所述应用数据标识所述规范应用;以及
从所述应用数据标识所述一个或多个版本应用。
15.根据权利要求13所述的服务器,其中所述计算机可读指令使得所述处理设备:
从所述应用数据提取对应于所述规范应用的多个通用属性;以及
从所述应用数据生成针对所述一个或多个版本应用的每个版本应用的多个版本属性。
16.根据权利要求15所述的服务器,其中至少所述多个版本属性的子集由所述多个通用属性继承。
17.根据权利要求15所述的服务器,其中生成所述应用代表包括根据所述应用搜索具体模式组织所述多个通用属性和针对所述一个或多个版本应用的每个版本应用的所述多个版本属性。
18.根据权利要求11所述的服务器,其中所述搜索索引对存储所述多个应用代表的可搜索数据库进行索引,每个应用代表表示不同的应用。
19.根据权利要求18所述的服务器,其中所述搜索索引通过所述多个应用代表的属性可搜索,其中响应于针对特定属性的查询所述搜索索引返回具有所述特定属性的一个或多个应用代表。
20.根据权利要求13所述的服务器,其中所述计算机可读指令使得所述处理设备通过组合应用数据的两个或更多个实例并且基于所述应用数据的所述组合中包含的文本生成属性来提取所述属性,其中所生成的属性不完全地包含在所述应用数据的所述实例的任意一个实例中。
21.一种用于处理搜索查询的方法,所述方法包括:
在处理设备处从伙伴接收搜索查询;
在所述处理设备处基于所述搜索查询来确定子查询集合;
在所述处理设备处从所述搜索查询提取所述搜索查询的查询特征;
在所述处理设备处基于所述子查询集合来确定应用代表的初始结果集合,所述初始结果集合包括一个或多个应用代表的集合,每个应用代表代表不同应用并且定义所述应用的特征,其中所述应用的所述特征从获得自一个或多个相应源的一个或多个文档提取;
在所述处理设备处基于所述查询特征集合和一个或多个机器学习的评分模型来确定针对所述应用代表的初始结果集合中的每个应用代表的评分;
在所述处理设备处基于针对所述初始结果集合的所述应用代表的所述评分来确定经评级的结果集合,经评级的结果集合指示对应于所述搜索查询的一个或多个应用;以及
在所述处理设备处向所述伙伴提供所述经评级的结果集合。
22.根据权利要求21所述的方法,其中确定所述初始结果集合包括:
在所述处理设备处基于所述子查询集合从搜索索引获得应用代表的预先考虑集合,其中所述一个或多个应用代表的集合是所述预先考虑集合的子集;以及
在所述处理设备处基于所述搜索查询的所述查询特征从所述预先考虑集合导出所述初始结果集合。
23.根据权利要求22所述的方法,其中获得所述预先考虑集合包括在所述处理设备处通过利用所述子查询集合查询所述搜索索引来标识一组应用代表,每个经标识的应用代表具有与所述子查询集合中的至少一个子查询相关联的特征,其中所述一个或多个应用代表的集合是经标识的一组应用代表的子集。
24.根据权利要求23所述的方法,其中导出所述初始结果集合包括:
在所述处理设备处基于经标识的一组应用代表的一个或多个特征从所述应用代表的预先考虑集合确定应用代表的考虑集合,所述考虑集合包括所述一个或多个应用代表的集合;以及
针对所述应用代表的考虑集合中的每个应用代表:
在所述处理设备处确定一个或多个查询/结果特征,每个查询/结果特征定义所述应用代表针对所述搜索查询的特征;以及
在所述处理设备处利用所述一个或多个查询/结果特征来扩充所述应用代表的特征。
25.根据权利要求24所述的方法,其中确定应用代表的所述评分包括在所述处理设备处将所述应用代表的所述特征、所述应用代表的所述查询/结果特征和所述查询特征输入至所述一个或多个评分模型。
26.根据权利要求21所述的方法:
其中所述搜索查询包括一个或多个查询项,以及
其中所述方法进一步包括响应于接收所述搜索查询,生成包含所述搜索查询的查询包装器,其中所述查询包装器进一步包含与所述伙伴相关的上下文数据。
27.根据权利要求26所述的方法,其中所述查询特征基于所述查询项和所述上下文数据。
28.一种用于促进基于功能的应用搜索的方法,所述方法包括:
在来自伙伴的处理设备处从多个数据源接收应用数据,所述应用数据是描述一个或多个应用的文本,其中:
所述多个数据源包括第一电子应用市场和第二电子应用市场,以及
所述应用数据包括(i)从所述第一电子应用市场接收的第一应用数据和(ii)从所述第二电子应用市场接收的第二应用数据;
在所述处理设备处标识所述应用数据中参考的应用,其中:
所述第一应用数据描述所述应用的第一应用版本,以及
所述第二应用数据描述所述应用的第二应用版本;
在所述处理设备处基于应用搜索具体模式从参考所述应用的所述应用数据来生成对应于所述应用的多个属性,所述应用数据包括从所述第一电子应用市场接收的所述第一应用数据和从所述第二电子应用市场接收的所述第二应用数据,其中所述应用搜索具体模式定义应用代表的结构和能够用于描述给定应用的一个或多个属性类型;
在所述处理设备处基于来自所述多个数据源的的所述应用数据根据应用搜索具体模式来生成分别对应于多个不同应用的多个应用代表,所述多个应用代表中的每个应用代表定义所述对应不同应用的所述多个属性,包括所述对应不同应用的文本描述和所述对应不同应用的评级;
在所述处理设备处基于所述多个应用代表生成一个或多个搜索索引;
在所述处理设备处接收指定至少期望应用功能的搜索查询;以及
在所述处理设备处基于所述期望应用功能、所述一个或多个生成的搜索索引以及所述多个应用代表的所述多个属性中的一个或多个属性向机器学习的评分模型的输入来标识一个或多个搜索结果。
29.根据权利要求28所述的方法,其中生成所述多个应用代表包括:
在所述处理设备处根据所述应用搜索具体模式从所接收的数据提取针对特定应用的属性;以及
在所述处理设备处通过根据所述应用搜索具体模式组织所提取的属性生成针对所述特定应用的应用代表。
30.根据权利要求29所述的方法,其中生成所述应用代表进一步包括:
在所述处理设备处针对所提取的属性的每个属性从属性类别集合中标识属性类型;
基于针对每个提取的属性的确定的所述属性类别向所提取的属性指派权重;以及
其中所述一个或多个搜索结果的标识至少部分地基于针对所提取的属性的所指派的权重。
31.根据权利要求30所述的方法,其中所述属性类别集合至少包括:核心类别、硬元数据类别、软元数据类别和片段类别。
32.根据权利要求28所述的方法,其中所述应用搜索具体模式指定待从所接收的应用数据提取的一个或多个属性,以及针对所述应用代表的所述一个或多个提取的属性的组织。
33.根据权利要求28所述的方法,其中所述一个或多个索引的生成包括:
在所述处理设备处标识针对目标上下文的应用过滤器;
在所述处理设备处基于所述应用过滤器和所述应用代表的功能属性来确定所述多个不同应用的子集;以及
在所述处理设备处使用对应于所述多个应用的所确定的子集的所述应用代表来生成针对所述目标上下文的特定索引。
34.根据权利要求33所述的方法,其中生成针对所述目标上下文的所述特定索引包括在所述处理设备处基于至少由所述目标上下文定义的一个或多个属性过滤器以及基于所述应用代表的所述属性来确定针对所述特定索引的配置。
35.一种用于处理搜索查询的服务器,所述服务器包括:
存储设备,其存储搜索索引,所述搜索索引对多个应用代表进行索引,每个应用代表表示不同的应用并且包括所述应用的一个或多个特征;
处理设备,其执行查询处理模块、初始集合确定模块、集合减少模块、结果处理模块、评分模块和后置处理模块;
所述查询处理模块被配置为:
从伙伴接收所述搜索查询;
基于所述搜索查询确定子查询集合;以及
从所述搜索查询提取所述搜索查询的查询特征;
所述初始集合确定模块被配置为基于所述子查询集合从所述搜索索引标识应用代表的预先考虑集合;
所述集合减少模块被配置为基于所标识的应用代表的预先考虑集合中的一个或多个结果特征从所述预先考虑集合确定应用代表的考虑集合;以及
所述结果处理模块被配置为基于所述查询特征和所述考虑集合中的所述应用代表的结果特征来确定应用代表的初始结果集合,所述初始结果集合包括应用代表的集合,每个应用代表包括相应应用的特征和所述相应应用的查询/结果特征,所述查询/结果特征定义所述相应应用鉴于所述查询特征的特征;
所述评分模块被配置为(1)基于所述查询特征、所述结果特征、所述查询/结果特征和一个或多个机器学习的评分模型来确定针对所述应用代表的初始结果集合中的每个应用代表的评分以及(2)基于所述初始结果集合中的所述应用代表的所述评分来确定经评级的结果集合;以及
所述后置处理模块被配置为向所述伙伴提供所述经评级的结果集合。
36.根据权利要求35所述的服务器,其中所述初始集合确定模块被配置为从搜索索引标识具有由所述子查询集合中的至少一个子查询暗示的特征的应用代表。
37.根据权利要求35所述的服务器,其中所述结果处理模块被配置为针对所述考虑集合中的每个应用代表通过以下操作确定所述初始结果集合:
确定所述应用代表的所述一个或多个查询/结果特征;以及
利用所述一个或多个查询/结果特征来扩充所述应用代表的所述特征。
38.根据权利要求37所述的服务器,其中所述评分模块被配置为针对每个应用代表通过将所述应用代表的所述特征、所述应用代表的所述查询/结果特征和所述查询特征输入至所述一个或多个评分模型来确定针对所述初始结果集合中的每个应用代表的所述评分。
39.根据权利要求35所述的服务器,其中所述搜索查询包括一个或多个查询项并被接收在查询包装器中,所述查询包装器进一步包含与所述伙伴相关的上下文数据。
40.根据权利要求39所述的服务器,其中所述查询特征基于所述查询项和所述上下文数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261639740P | 2012-04-27 | 2012-04-27 | |
US61/639,740 | 2012-04-27 | ||
US201261680535P | 2012-08-07 | 2012-08-07 | |
US61/680,535 | 2012-08-07 | ||
PCT/US2013/038618 WO2013163644A2 (en) | 2012-04-27 | 2013-04-29 | Updating a search index used to facilitate application searches |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104412265A CN104412265A (zh) | 2015-03-11 |
CN104412265B true CN104412265B (zh) | 2018-01-26 |
Family
ID=49478252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380034467.1A Expired - Fee Related CN104412265B (zh) | 2012-04-27 | 2013-04-29 | 更新用于促进应用搜索的搜索索引 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9600530B2 (zh) |
KR (1) | KR101793222B1 (zh) |
CN (1) | CN104412265B (zh) |
WO (1) | WO2013163644A2 (zh) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665647B2 (en) | 2010-06-11 | 2017-05-30 | Doat Media Ltd. | System and method for indexing mobile applications |
US9552422B2 (en) | 2010-06-11 | 2017-01-24 | Doat Media Ltd. | System and method for detecting a search intent |
US10713312B2 (en) | 2010-06-11 | 2020-07-14 | Doat Media Ltd. | System and method for context-launching of applications |
WO2011156605A2 (en) | 2010-06-11 | 2011-12-15 | Doat Media Ltd. | A system and methods thereof for enhancing a user's search experience |
US9372885B2 (en) | 2010-06-11 | 2016-06-21 | Doat Media Ltd. | System and methods thereof for dynamically updating the contents of a folder on a device |
US9639611B2 (en) | 2010-06-11 | 2017-05-02 | Doat Media Ltd. | System and method for providing suitable web addresses to a user device |
US9141702B2 (en) | 2010-06-11 | 2015-09-22 | Doat Media Ltd. | Method for dynamically displaying a personalized home screen on a device |
US9069443B2 (en) | 2010-06-11 | 2015-06-30 | Doat Media Ltd. | Method for dynamically displaying a personalized home screen on a user device |
US9858342B2 (en) * | 2011-03-28 | 2018-01-02 | Doat Media Ltd. | Method and system for searching for applications respective of a connectivity mode of a user device |
US9519726B2 (en) | 2011-06-16 | 2016-12-13 | Amit Kumar | Surfacing applications based on browsing activity |
US9372901B2 (en) * | 2012-04-27 | 2016-06-21 | Quixey, Inc. | Searching for software applications based on application attributes |
US8990183B2 (en) * | 2012-06-06 | 2015-03-24 | Microsoft Technology Licensing, Llc | Deep application crawling |
CN103810168A (zh) * | 2012-11-06 | 2014-05-21 | 深圳市世纪光速信息技术有限公司 | 检索应用的方法、装置及终端 |
US11762849B2 (en) * | 2013-01-14 | 2023-09-19 | Mastercard International Incorporated | Systems and methods for managing offline database access |
US9092527B2 (en) * | 2013-01-30 | 2015-07-28 | Quixey, Inc. | Performing application search based on entities |
US9553919B2 (en) | 2013-02-27 | 2017-01-24 | Quixey, Inc. | Techniques for sharing application states |
US9959360B2 (en) | 2013-03-01 | 2018-05-01 | Samsung Electronics Co., Ltd. | Generating search results containing state links to applications |
US20140280098A1 (en) * | 2013-03-15 | 2014-09-18 | Quixey, Inc. | Performing application search based on application gaminess |
US9032392B2 (en) | 2013-03-15 | 2015-05-12 | Quixey, Inc. | Similarity engine for facilitating re-creation of an application collection of a source computing device on a destination computing device |
US10417612B2 (en) * | 2013-12-04 | 2019-09-17 | Microsoft Technology Licensing, Llc | Enhanced service environments with user-specific working sets |
US9418103B2 (en) | 2013-12-06 | 2016-08-16 | Quixey, Inc. | Techniques for reformulating search queries |
US9569536B2 (en) * | 2013-12-17 | 2017-02-14 | Microsoft Technology Licensing, Llc | Identifying similar applications |
US9471624B1 (en) | 2013-12-26 | 2016-10-18 | Quixey, Inc. | Method for recommending applications for deletion |
US10229190B2 (en) * | 2013-12-31 | 2019-03-12 | Samsung Electronics Co., Ltd. | Latent semantic indexing in application classification |
US20150186940A1 (en) * | 2013-12-31 | 2015-07-02 | Quixey, Inc. | Techniques For Generating Advertisements |
US9720672B2 (en) | 2014-01-06 | 2017-08-01 | Quixey, Inc. | Searching and accessing application functionality |
US20150242421A1 (en) * | 2014-02-21 | 2015-08-27 | Quixey, Inc. | Location-Based Searching |
US9430476B2 (en) * | 2014-03-13 | 2016-08-30 | GM Global Technology Operations LLC | Method and apparatus of user recommendation system for in-vehicle apps |
US20150262198A1 (en) * | 2014-03-13 | 2015-09-17 | GM Global Technology Operations LLC | Method and apparatus of tracking and predicting usage trend of in-vehicle apps |
US9432395B2 (en) | 2014-04-28 | 2016-08-30 | Quixey, Inc. | Application spam detector |
US20150324868A1 (en) * | 2014-05-12 | 2015-11-12 | Quixey, Inc. | Query Categorizer |
US9721021B2 (en) | 2014-05-27 | 2017-08-01 | Quixey, Inc. | Personalized search results |
US10467304B1 (en) * | 2014-05-30 | 2019-11-05 | Better Learning, Inc. | Recommending educational mobile applications and assessing student progress in meeting education standards correlated to the applications |
US10061757B2 (en) * | 2014-06-17 | 2018-08-28 | Google Llc | Systems, methods, and computer-readable media for searching tabular data |
CN104090967B (zh) * | 2014-07-16 | 2017-08-25 | 北京智谷睿拓技术服务有限公司 | 应用程序推荐方法及推荐装置 |
US20160034958A1 (en) * | 2014-07-30 | 2016-02-04 | Quixey, Inc. | Generating Advertisements For Search Results That Are Associated With Entities |
US9645797B2 (en) * | 2014-09-23 | 2017-05-09 | Quixey, Inc. | Development system and method for providing external functionality |
US9613095B2 (en) * | 2014-09-23 | 2017-04-04 | Quixey, Inc. | Entity-based external functionality for software developers |
US9703534B2 (en) * | 2014-09-23 | 2017-07-11 | Quixey, Inc. | Dynamic entity inference for developer integration of entity-based external functionality |
US9626443B2 (en) | 2014-10-23 | 2017-04-18 | Quixey, Inc. | Searching and accessing application functionality |
US10652798B2 (en) * | 2014-11-14 | 2020-05-12 | Motorola Mobility Llc | Method and device for routing traffic of applications installed on a mobile device |
US10157230B2 (en) * | 2014-12-29 | 2018-12-18 | Samsung Electronics Co., Ltd. | Generating search results based on clustered application states |
US10157232B2 (en) * | 2014-12-31 | 2018-12-18 | Samsung Electronics Co., Ltd. | Personalizing deep search results using subscription data |
US10216852B1 (en) * | 2015-01-22 | 2019-02-26 | Google Llc | Indexing access limited native applications |
US10180680B2 (en) * | 2015-03-30 | 2019-01-15 | Uop Llc | Tuning system and method for improving operation of a chemical plant with a furnace |
US10095200B2 (en) | 2015-03-30 | 2018-10-09 | Uop Llc | System and method for improving performance of a chemical plant with a furnace |
EP3079083A1 (en) * | 2015-04-09 | 2016-10-12 | Google, Inc. | Providing app store search results |
KR101665649B1 (ko) * | 2015-05-12 | 2016-10-12 | 주식회사 엘지씨엔에스 | 소셜 미디어 데이터 분석 시스템 및 이를 이용한 소셜 미디어 데이터 분석 방법 |
EP3308294B1 (en) | 2015-06-15 | 2020-10-28 | Google LLC | Automatic crawling of applications |
US10268732B2 (en) | 2015-06-29 | 2019-04-23 | Google Llc | Ranking native applications and native application deep links |
WO2017025939A1 (en) * | 2015-08-13 | 2017-02-16 | Quixey, Inc. | Cloud-enabled architecture for on-demand native application crawling |
CN106469151B (zh) * | 2015-08-14 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 应用服务信息关联的方法、应用关联平台服务器和客户端 |
US9686263B2 (en) * | 2015-08-14 | 2017-06-20 | Quixey, Inc. | Search result relevance based on user account information |
US9946766B2 (en) * | 2015-08-20 | 2018-04-17 | Samsung Electronics Co., Ltd. | Search result relevance based on content associated with software applications |
US20170060864A1 (en) * | 2015-08-26 | 2017-03-02 | Quixey, Inc. | Action Recommendation System for Focused Objects |
US20170060891A1 (en) * | 2015-08-26 | 2017-03-02 | Quixey, Inc. | File-Type-Dependent Query System |
US10353976B2 (en) * | 2015-10-05 | 2019-07-16 | Samsung Electronics Co., Ltd. | Generating search results using a set of alternate search queries |
US9864580B2 (en) * | 2015-10-26 | 2018-01-09 | Samsung Electronics Co., Ltd. | Dynamic availability-based integration of external functionality |
US10810270B2 (en) * | 2015-11-13 | 2020-10-20 | International Business Machines Corporation | Web search based on browsing history and emotional state |
US10157210B2 (en) * | 2015-12-11 | 2018-12-18 | Samsung Electronics Co., Ltd. | Searching and accessing software application functionality using application connections |
KR102593605B1 (ko) * | 2015-12-18 | 2023-10-25 | 에스케이플래닛 주식회사 | 소프트웨어 개발 키트에서의 사용자 식별값 관리 방법 및 그 소프트웨어 개발 키트 |
US9811327B2 (en) | 2015-12-21 | 2017-11-07 | Quixey, Inc. | Dependency-aware transformation of multi-function applications for on-demand execution |
US9952848B2 (en) * | 2015-12-21 | 2018-04-24 | Samsung Electronics Co., Ltd. | Dependency-aware transformation of multi-function applications for on-demand execution |
US10769674B2 (en) * | 2015-12-31 | 2020-09-08 | Samsung Electronics Co., Ltd. | Generation and rendering system for advertisement objects with computer-selected conditional content |
US10120954B2 (en) | 2015-12-31 | 2018-11-06 | Samsung Electronics Co., Ltd. | Transformation and presentation of on-demand native application crawling results |
US10489459B1 (en) * | 2016-07-21 | 2019-11-26 | Google Llc | Query recommendations for a displayed resource |
US10346457B2 (en) | 2016-07-27 | 2019-07-09 | Microsoft Technology Licensing, Llc | Platform support clusters from computer application metadata |
US10339148B2 (en) | 2016-07-27 | 2019-07-02 | Microsoft Technology Licensing, Llc | Cross-platform computer application query categories |
US10387435B2 (en) | 2016-07-27 | 2019-08-20 | Microsoft Technology Licensing, Llc | Computer application query suggestions |
US11157540B2 (en) * | 2016-09-12 | 2021-10-26 | International Business Machines Corporation | Search space reduction for knowledge graph querying and interactions |
CN107977381B (zh) * | 2016-10-24 | 2021-08-27 | 华为技术有限公司 | 数据配置方法、索引管理方法、相关装置以及计算设备 |
US11250074B2 (en) | 2016-11-30 | 2022-02-15 | Microsoft Technology Licensing, Llc | Auto-generation of key-value clusters to classify implicit app queries and increase coverage for existing classified queries |
CN108536699A (zh) * | 2017-03-02 | 2018-09-14 | 百度在线网络技术(北京)有限公司 | 网页内容的抓取方法、装置、设备及存储介质 |
CN108664515B (zh) * | 2017-03-31 | 2019-09-17 | 北京三快在线科技有限公司 | 一种搜索方法及装置,电子设备 |
CN107357803B (zh) * | 2017-05-22 | 2021-02-26 | 捷开通讯(深圳)有限公司 | 应用页面的搜索方法、移动设备及具有存储功能的装置 |
CN109144831B (zh) * | 2017-06-15 | 2021-10-29 | ***通信集团浙江有限公司 | 一种app识别规则的获取方法及装置 |
US10831441B2 (en) * | 2017-07-05 | 2020-11-10 | Kt Corporation | Method for controlling and accessing application based on active voice input |
US10942836B2 (en) | 2017-10-26 | 2021-03-09 | Nutanix, Inc. | Application curation |
US11132180B2 (en) * | 2018-01-05 | 2021-09-28 | Microsoft Technology Licensing, Llc | Neural-guided deductive search for program synthesis |
KR20200132035A (ko) | 2019-05-15 | 2020-11-25 | 삼성전자주식회사 | 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 |
US11144720B2 (en) * | 2019-08-26 | 2021-10-12 | Roblox Corporation | Determining canonical content for a game |
US11224803B2 (en) | 2019-11-22 | 2022-01-18 | Roblox Corporation | Prominent display of targeted game in search results |
CN117056383A (zh) * | 2023-07-12 | 2023-11-14 | 荣耀终端有限公司 | 搜索方法和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1799099A (zh) * | 2003-06-04 | 2006-07-05 | 三星电子株式会社 | 用于元数据管理的装置和方法 |
CN101454779A (zh) * | 2006-03-27 | 2009-06-10 | 甲骨文国际公司 | 基于搜索的应用开发框架 |
CN101983331A (zh) * | 2008-03-31 | 2011-03-02 | 南方创新国际股份有限公司 | 具有单个信号分辨率的辐射成像方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082426B2 (en) | 1993-06-18 | 2006-07-25 | Cnet Networks, Inc. | Content aggregation method and apparatus for an on-line product catalog |
WO2003030025A1 (en) | 2001-09-28 | 2003-04-10 | British Telecommunications Public Limited Company | Database management system |
US7039923B2 (en) | 2002-04-19 | 2006-05-02 | Sun Microsystems, Inc. | Class dependency graph-based class loading and reloading |
US7457794B2 (en) * | 2004-10-14 | 2008-11-25 | Sap Ag | Searching for customized processing rules for a computer application |
US7716198B2 (en) * | 2004-12-21 | 2010-05-11 | Microsoft Corporation | Ranking search results using feature extraction |
EP1688817A1 (en) * | 2005-02-03 | 2006-08-09 | Sun Microsystems France S.A. | Method and apparatus for requestor sensitive role membership lookup |
US7849091B1 (en) | 2006-01-25 | 2010-12-07 | At&T Intellectual Property Ii, L.P. | Meta-data indexing for XPath location steps |
US9367680B2 (en) * | 2008-10-21 | 2016-06-14 | Lookout, Inc. | System and method for mobile communication device application advisement |
US9665647B2 (en) * | 2010-06-11 | 2017-05-30 | Doat Media Ltd. | System and method for indexing mobile applications |
US20120316955A1 (en) | 2011-04-06 | 2012-12-13 | Yahoo! Inc. | System and Method for Mobile Application Search |
US8626774B2 (en) | 2012-01-23 | 2014-01-07 | Qualcomm Innovation Center, Inc. | Location based apps ranking for mobile wireless computing and communicating devices |
US9201946B2 (en) * | 2012-04-26 | 2015-12-01 | Quixey, Inc. | Application representation for application editions |
-
2013
- 2013-03-15 US US13/842,215 patent/US9600530B2/en active Active
- 2013-03-15 US US13/842,169 patent/US9152674B2/en active Active
- 2013-04-29 WO PCT/US2013/038618 patent/WO2013163644A2/en active Application Filing
- 2013-04-29 KR KR1020147033368A patent/KR101793222B1/ko active IP Right Grant
- 2013-04-29 CN CN201380034467.1A patent/CN104412265B/zh not_active Expired - Fee Related
-
2015
- 2015-07-29 US US14/812,314 patent/US10180967B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1799099A (zh) * | 2003-06-04 | 2006-07-05 | 三星电子株式会社 | 用于元数据管理的装置和方法 |
CN101454779A (zh) * | 2006-03-27 | 2009-06-10 | 甲骨文国际公司 | 基于搜索的应用开发框架 |
CN101983331A (zh) * | 2008-03-31 | 2011-03-02 | 南方创新国际股份有限公司 | 具有单个信号分辨率的辐射成像方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104412265A (zh) | 2015-03-11 |
WO2013163644A3 (en) | 2013-12-19 |
US20150347420A1 (en) | 2015-12-03 |
US9600530B2 (en) | 2017-03-21 |
US20130290319A1 (en) | 2013-10-31 |
US9152674B2 (en) | 2015-10-06 |
US20130290344A1 (en) | 2013-10-31 |
KR20150031234A (ko) | 2015-03-23 |
KR101793222B1 (ko) | 2017-11-02 |
WO2013163644A2 (en) | 2013-10-31 |
US10180967B2 (en) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104412265B (zh) | 更新用于促进应用搜索的搜索索引 | |
Huyen | Designing machine learning systems | |
US10885058B2 (en) | Data visualization platform for event-based behavior clustering | |
Ferrara et al. | Web data extraction, applications and techniques: A survey | |
Chen et al. | Business intelligence and analytics: From big data to big impact | |
CN105765566B (zh) | 一种自动生成标题的方法及*** | |
JP5329900B2 (ja) | 対象領域におけるディジタル情報開示方法 | |
Martella et al. | Practical graph analytics with apache giraph | |
CN107077486A (zh) | 情感评价***和方法 | |
US20100306192A1 (en) | Method and system for a search engine for user generated content (ugc) | |
CN105874753A (zh) | 用于社交数据网络用户行为细分的***和方法 | |
WO2010000065A1 (en) | Facilitating collaborative searching using semantic contexts associated with information | |
CA2802887A1 (en) | Systems of computerized agents and user-directed semantic networking | |
US9767204B1 (en) | Category predictions identifying a search frequency | |
US10579734B2 (en) | Web-based influence system and method | |
Strobbe et al. | Interest based selection of user generated content for rich communication services | |
US9794284B2 (en) | Application spam detector | |
CN114138985B (zh) | 文本数据处理的方法、装置、计算机设备以及存储介质 | |
CN112262380A (zh) | 提供查询推荐 | |
CN111143684A (zh) | 基于人工智能的泛化模型的训练方法及装置 | |
US9536445B2 (en) | System and method for visually tracking a learned process | |
US9449111B2 (en) | System and method for generating and accessing trails | |
US10474670B1 (en) | Category predictions with browse node probabilities | |
Zhang | [Retracted] Optimization of the Marketing Management System Based on Cloud Computing and Big Data | |
US10387934B1 (en) | Method medium and system for category prediction for a changed shopping mission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20171228 Address after: Gyeonggi Do, South Korea Applicant after: SAMSUNG ELECTRONICS Co.,Ltd. Address before: California, USA Applicant before: QUIXEY, Inc. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180126 |
|
CF01 | Termination of patent right due to non-payment of annual fee |