CN110088752B - 内容搜索引擎 - Google Patents

内容搜索引擎 Download PDF

Info

Publication number
CN110088752B
CN110088752B CN201680091650.9A CN201680091650A CN110088752B CN 110088752 B CN110088752 B CN 110088752B CN 201680091650 A CN201680091650 A CN 201680091650A CN 110088752 B CN110088752 B CN 110088752B
Authority
CN
China
Prior art keywords
program logic
item
unassembled
client device
content
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.)
Active
Application number
CN201680091650.9A
Other languages
English (en)
Other versions
CN110088752A (zh
Inventor
S.钟
K.J.桑德斯
Y.刘
J.W.斯库德
J.周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN110088752A publication Critical patent/CN110088752A/zh
Application granted granted Critical
Publication of CN110088752B publication Critical patent/CN110088752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

公开了包括编码在计算机存储介质上的计算机程序的用于搜索存储未汇编内容项的数据库的方法、***和装置。该方法可以包括以下动作:接收对要呈现在应用中的内容项的查询;标识与(i)程序逻辑类型和(ii)程序逻辑修改标签相关联的未汇编内容项;确定客户端设备是否需要包括用于再现未汇编内容项的汇编版本的指令的程序逻辑项的更新副本;以及向应用程序接口发送包括(i)未汇编内容项和(ii)修改的程序逻辑的数据,使得客户端设备使用程序逻辑在客户端设备处以应用的编程语言再现内容项的汇编版本。

Description

内容搜索引擎
技术领域
本说明书涉及一种用于检索未汇编内容项(unassembled content item)和相关程序逻辑项的内容搜索引擎,这些相关程序逻辑项可以用于以移动应用的本地编程语言绘制(render)该未汇编内容项。
背景技术
搜索引擎通常可以被描述为执行搜索并检索存储的数据的任何程序。然而,基于手头的任务,搜索引擎可以以各种不同的方式进行配置。例如,一些搜索引擎可以被配置为执行基于关键词的搜索和检索。这种搜索引擎可以至少部分地基于搜索项在特定资源中出现的次数或特定资源的元数据来标识相关搜索结果。可替换地或附加地,一些搜索引擎可以将搜索结果标识为响应于查询,因为资源提供商向搜索引擎提供商支付了一笔钱,以响应于包括特定搜索项的搜索查询来返回提供商的(多个)资源。
除了主要的一组互联网搜索引擎结果之外,其他类型的搜索引擎还可以处理对要显示的内容的查询。这种***依赖于使用HTML网络视图以用于在客户端设备上绘制内容。然而,HTML网页视图是有问题的,因为它们是异步的、CPU/RAM很重、速度慢,并且通常会在移动应用上造成用户界面性能下降。
发明内容
根据本公开的一个创新性方面,提供了一种由数据处理***执行的用于从存储未汇编内容项的数据库中提供与交互式用户界面相关联的内容的方法。该方法可以包括以下动作:从安装在客户端设备上的应用编程接口接收对要呈现在应用中的内容项的查询;基于使用接收到的查询对数据库进行搜索来标识与(i)程序逻辑类型和(ii)程序逻辑修改标签相关联的未汇编内容项;基于接收到的查询来确定,客户端设备是否需要包括用于绘制未汇编内容项的汇编版本(assembled version)的指令的程序逻辑项的更新副本;以及响应于确定客户端设备需要包括用于绘制未汇编内容项的汇编版本的指令的程序逻辑项的更新副本:基于该程序逻辑类型来获得包括用于绘制未汇编内容项的汇编版本的指令的程序逻辑项、基于该程序逻辑修改标签来修改该程序逻辑项;并且将包括(i)未汇编内容项和(ii)修改的程序逻辑的数据传输到应用编程接口,使得客户端设备使用程序逻辑在客户端设备处以应用的编程语言绘制内容项的汇编版本。
其他方面包括相应的***、装置和计算机程序,用以执行由在计算机存储设备上编码的指令定义的方法的动作。
这些和其他版本可以可选地包括以下特征中的一个或多个。例如,在一些实施方式中,该方法可以进一步包括响应于确定客户端设备不需要包括用于绘制未汇编内容项的汇编版本的指令的程序逻辑项的更新副本,将包括要在客户端设备处,使用在客户端设备上本地缓存的程序逻辑项的副本,以应用的编程语言,绘制为内容项的汇编版本的未汇编内容项的数据传输到应用编程接口。
在一些实施方式中,查询可以包括(i)一个或多个关键词和(ii)上下文信息。上下文信息可以包括程序逻辑项版本标识符。该方法可以进一步包括基于上下文信息确定至少一个属性,其中该至少一个属性是从由以下组成的组中选择的属性:客户端设备的一个或多个属性、安装在客户端设备上的移动应用的一个或多个属性、和安装在客户端设备上的操作***的一个或多个属性。客户端设备可以基于修改的程序逻辑项中提供的指令来绘制内容项的汇编版本。
在一些实施方式中,基于程序逻辑修改标签来修改程序逻辑项可以包括基于程序逻辑修改标签启用程序逻辑项的一个或多个属性。可替换地或附加地,基于程序逻辑修改标签来修改程序逻辑项可以包括基于程序逻辑修改标签禁用程序逻辑项的一个或多个属性。
在一些实施方式中,该方法可以进一步包括从安装在客户端设备上的应用编程接口接收指示用户与内容项的汇编版本的交互数量的数据。
在一些实施方式中,程序逻辑类型可以包括程序逻辑标识符。
本说明书中描述的主题可以在特定实施例中实施,以便实现以下优点中一个或多个。相对于不使用本文公开的***的***,通过减少交互式用户界面中内容显示中的等待时间(latency),提高了数据处理***的性能。本公开的各方面还将通过使用新颖的缓存和绘制技术来优化用于从远程服务器检索要绘制的内容的网络带宽的使用。本文公开的内容绘制技术还利用了程序逻辑项,该程序逻辑项被缓存在客户端设备上并被动态修改从而以减少在客户端设备上安装的应用的用户界面上绘制内容所需的CPU处理量、RAM使用量和其他***资源的方式绘制缓存的内容。可以基于来自客户端设备的查询动态地提供未汇编内容项和程序逻辑项,并且在客户端设备上以移动应用的本地编程语言绘制其中要显示内容的显示环境,以提供动态用户界面。
附图说明
图1是内容搜索和绘制***的环境框图。
图2是使用内容搜索引擎检索未汇编内容的过程的流程图。
图3是用于使用客户端设备来使用程序逻辑绘制未汇编内容的过程的流程图。
具体实施方式
本公开的各方面涉及包括在计算机存储介质上编码的计算机程序的方法、***和装置,用于搜索和绘制未汇编内容项,以便于显示在经由安装在客户端设备上的移动应用的用户界面提供的一组搜索结果中。通常,内容项包括可以与一个或多个搜索结果相关联地显示的内容,包括例如文本内容、图像内容、视频内容或其组合。一般而言,未汇编内容项包括预先绘制的内容,包括例如以二进制blob格式存储的内容项。移动应用使用移动应用的本地编程语言(例如,C、Objective-C、C++、Java等)本地绘制存储在本地客户端缓存中的未汇编内容项。本地绘制缓存的内容包括使用也缓存在客户端设备上的程序逻辑项来汇编存储在本地缓存中的未汇编内容。一般而言,程序逻辑项包括例如可以由客户端设备处理以绘制未汇编内容项的汇编版本的指令。
本公开使用从内容服务器检索的缓存的未汇编内容项和程序逻辑项的本地绘制,以对依赖于HTML来为这种内容绘制创建网络视图的传统***提供改进。这样的HTML网页视图是有问题的,因为它们是异步的、CPU/RAM很重、速度慢,并且通常会在移动应用上造成用户界面性能下降。使用本文描述的绘制技术来解决这个问题。通过要求从内容服务器检索未汇编内容项和程序逻辑项(而不是将内容项的本地绘制预编码到移动应用本身中),本公开以允许内容提供商和***运营商有机会保持对客户端设备上的内容绘制的控制的方式实现了内容项的本地绘制。内容提供商和***运营商通过提供用于下载的程序逻辑项来保持对客户端设备上内容项的绘制的控制,这些程序逻辑项描述了在使用安装在客户端设备上的移动应用的本地编程语言绘制未汇编内容项期间应当如何汇编未汇编内容项。
图1是内容搜索和绘制***100的环境框图。内容搜索和绘制***100包括至少一个客户端设备110、网络120和至少一个服务器130。客户端设备110可以包括例如智能手机、智能手表、平板电脑、膝上型电脑、台式电脑等。网络120可以包括例如LAN、WAN、蜂窝网络、互联网等中的一个或多个。服务器130可以包括一个或多个后端服务器计算机。
在一个实施方式中,内容搜索和绘制***100可以用于响应于搜索查询来检索和绘制内容。例如,在阶段A处,客户端设备110的用户可以将一个或多个搜索项162(诸如搜索项“鞋”)输入到经由在客户端设备110上运行的应用的图形用户界面160提供的查询输入框164中。在键入搜索项162之后,客户端设备110的用户可以提交指示客户端设备110基于搜索项162发起搜索的命令。
安装在客户端设备110上的应用编程接口(application programminginterface,API)111被配置成接收一个或多个搜索项162并生成112包括一个或多个搜索项162和上下文信息的查询121。该上下文信息可以包括,例如,(i)安装在客户端设备上并用于输入查询的应用标识符、(ii)安装在客户端设备上并用于输入查询的应用版本、(iii)安装在客户端设备上并用于生成查询、发送查询或两者的API版本、(iv)一个或多个客户端设备设置、(v)客户端设备版本、(vi)客户端设备的位置、(vii)客户端设备是否正在移动、(viii)由客户端设备缓存的一个或多个程序逻辑版本、(ix)或它们的组合。在一些实施方式中,API 111可以将查询121编码成加密令牌。加密令牌可以包括例如一组散列的一个或多个搜索项和上下文信息。客户端设备可以经由网络120向服务器130发送122生成的查询121。
服务器130接收123并处理查询121。如果查询121被编码成加密令牌,则服务器130可以解密该加密令牌。查询121的处理可以由服务器130将查询121作为输入131提供给内容搜索单元132开始。内容搜索单元132可以获得查询121中包括的关键词,并发起内容数据库134的搜索133。可替换地或附加地,内容搜索单元132可以搜索索引,而不是搜索内容项的数据库(诸如内容数据库134),该索引包括对存储在服务器上与存储内容搜索单元132的服务器130不同的位置处的未汇编内容项的引用。因此,内容搜索单元132可以接收135标识响应于搜索133的一组一个或多个未汇编内容项的搜索结果。
内容搜索单元132对内容数据库134的搜索133是基于查询121的一个或多个搜索项来标识未汇编内容项的尝试。然后,如下所述,通过搜索标识的一个或多个未汇编内容项可以可用于由客户端设备110下载。下载的、未汇编内容项然后可以由客户端设备110使用安装在客户端设备110上的移动应用117的本地编程语言来绘制,如本文所描述的,并且在阶段B处被提供用于在图形用户界面160上显示为汇编内容项,诸如汇编内容项180、182。
然而,单独地,移动应用117、服务器130等可以基于一个或多个搜索项162发起对可以被提供给客户端设备的互联网搜索结果的搜索。如本文所述,这样的互联网搜索结果可以被返回给客户端设备110,并且然后作为互联网搜索结果172、174、176、178被提供用于在阶段B经由显示器160显示。因此,本文描述的过程涉及与互联网搜索结果的搜索、检索和绘制分离(并且除了该互联网搜索结果的搜索、检索和绘制)的未汇编内容项的搜索、检索和绘制。
内容数据库134可以位于与内容搜索单元132、上下文分析单元137、逻辑搜索单元139、逻辑数据库141或它们的组合相同的服务器上。可替换地,内容数据库134可以位于与内容搜索单元132、上下文分析单元137、逻辑搜索单元139、逻辑数据库147或它们的组合不同的服务器上。内容数据库134可以包括多个未汇编内容项,诸如未汇编内容项134a、134b、134c、134d。未汇编内容项(诸如未汇编内容项134a、134b、134c、134d)可以包括例如二进制blob格式。可替换地,未汇编内容项可以包括在使用用于在应用的图形界面上绘制内容项的程序逻辑之前的任何格式的任何内容项。未汇编内容项可以包括图像、视频等。在一些实施方式中,未汇编内容项可以包括广告。
内容搜索单元132可以标识响应于所获得的关键词的一个或多个未汇编内容项,诸如未汇编内容项134c、134d。例如,响应于内容数据库134的搜索133,可以将一组所标识的未汇编内容项返回135给内容搜索单元132。该组返回135的所标识的未汇编内容项可以包括一组一个或多个实际内容项。可替换地,该组所标识的未汇编内容项可以包括一组一个或多个引用,该组一个或多个引用每个都指代相应的未汇编内容项。
每个相应的未汇编内容项134a、134b、134c、134d,或者对其的每个相应引用,可以与程序逻辑类型150相关联。程序逻辑类型150例如可以包括程序逻辑标识符。程序逻辑标识符可以包括例如标识可以用于绘制未汇编内容项的特定程序逻辑项的数据。此外,每个相应的未汇编内容项134a、134b、134c、134d,或者对其的每个相应引用,可以与一个或多个程序逻辑修改标签152相关联。程序逻辑修改标签152可以包括启用或禁用(例如,忽略)程序逻辑项(诸如程序逻辑项141a、141b、141c、141d)的属性的数据。可替换地或附加地,程序逻辑修改标签152可以包括将程序逻辑项(诸如程序逻辑项141a、141b、141c、141d)的属性设置为特定值、特定设置或特定状态的数据。
内容提供商可以使用程序逻辑修改标签152来控制将由内容汇编器121绘制未汇编内容项的方式。这是因为程序逻辑修改标签152可以用于动态定制特定的程序逻辑项,该特定的程序逻辑项将由内容汇编器121用于绘制相关的未汇编内容项。例如,内容提供商可能能够控制与布局、样式、动作、数据绑定定义等相关的绘制属性,使得内容提供商的内容以与内容提供商希望内容绘制的方式一致的方式绘制在安装在客户端设备110上的移动应用的用户界面上。
在一些实施方式中,程序逻辑修改标签可以包括在未汇编内容项的字段和程序逻辑项的字段之间共享的标识符。如果与特定程序逻辑修改标签相关联的未汇编内容项字段包括数据,则也与相同程序逻辑修改标签相关联的程序逻辑项字段将被启用(例如,被激活)。然而,可替换地,如果与特定程序逻辑修改标签相关联的未汇编内容项字段不包括任何数据,则也与相同程序逻辑修改标签相关联的程序逻辑项字段可以被禁用(例如,被忽略、隐藏等)。因此,本公开有助于基于与程序逻辑项相关联的程序逻辑修改标签、基于未汇编内容项中呈现的数据条的存在来禁用程序逻辑项的一个或多个属性。
上下文分析单元137可以从内容搜索单元132接收查询121。可替换地,上下文分析单元137可以从服务器130的另一组件接收查询121。上下文分析单元可以分析与查询121相关联的上下文,以确定发起查询121的客户端设备是否需要程序逻辑项的更新副本,该程序逻辑项的更新副本是绘制响应于未汇编内容数据库134的搜索而标识的一个或多个未汇编内容项所需要的。在一些实施方式中,查询121的上下文可以指示在提交查询121的客户端设备110上缓存的程序逻辑项的当前副本(例如,当前版本)的一个或多个属性。可替换地或附加地,查询121的上下文可以指示客户端设备110的一个或多个属性、安装在客户端设备上的移动应用的一个或多个属性、安装在客户端设备上的操作***的一个或多个属性等。然后,基于对查询的上下文的分析,上下文分析单元137可以确定是否需要执行逻辑数据库141的搜索。
例如,上下文分析单元137可以基于查询121的上下文来确定客户端设备110当前正在存储程序逻辑项的缓存副本,该程序逻辑项的缓存副本是绘制响应于查询121而标识的未汇编内容项所需要的。在这样的实例中,上下文分析单元137可以基于查询121终止搜索过程,并且然后将数据124a直接发送124到包括响应于查询121的未汇编内容项的客户端设备110。在这样的实施方式中,一旦查询121的执行完成,服务器可以向客户端设备110发送响应于该查询的所有未汇编内容项。可替换地,当执行预提取例程时,服务器130可以递增地向客户端设备110发送数据,该数据包括两个或多个未汇编内容项的组中的未汇编内容项。这种预提取例程向客户端设备110发送包括响应于查询121的未汇编内容项的初始组的数据,并且然后继续在后台执行未汇编内容项搜索查询121。这提供了以下优点:在服务器130在后台完成内容查询121的执行的同时,让客户端设备110接收初始批(initialbatch)未汇编内容项,并开始使用缓存在客户端设备110上的相关联的程序逻辑项来绘制初始批内容项。从服务器130发送124到客户端110的数据124a可以由客户端设备110接收125,并输入113到API 111。
可替换地,服务器130可以终止搜索过程,并且然后发送搜索结果消息。搜索结果消息可以包括对网络位置(诸如提供存储未汇编内容项的服务器计算机的网络位置的统一资源定位符(uniform resource locator,URL))的引用。在这种实例中,服务器130可以将搜索结果消息发送到客户端设备110,该客户端设备接收具有对网络位置的引用的搜索结果消息。客户端设备110然后可以将接收到的搜索结果消息提供给API 111。在接收到搜索结果消息时,应用编程接口可以从由搜索结果消息中的引用(例如,URL)所标识的网络位置自动地仅检索未汇编的内容(并且在这种实例中,不检索程序逻辑项)。
因此,上下文分析单元137可以通过确定有时不必需(1)搜索、(2)可供下载、以及(3)让客户端下载在客户端设备上绘制未汇编内容项所必需的一个或多个程序逻辑项来提高性能。因此,在某些实例中,这种过程可以降低搜索程序逻辑项所需的处理能力,降低通过网络传递程序逻辑所必需的带宽,并改善在应用的图形用户界面上绘制内容项时的等待时间,因为客户端设备将不需要在绘制内容之前等待下载程序逻辑(因为在这些实例中客户端设备具有程序逻辑的缓存版本)。
然而,在其他实例中,上下文分析单元137可以基于查询121的上下文确定(i)客户端设备110当前没有存储绘制响应于查询的未汇编内容所必需的程序逻辑项的缓存版本(例如,没有存储程序逻辑项),(ii)客户端设备110当前存储过时的、绘制未汇编内容所必需的程序逻辑项的缓存版本(例如,程序逻辑项的过时版本)或(iii)类似情况。在这样的实例中,上下文分析单元137可以指示程序逻辑搜索单元139搜索程序逻辑数据库,以检索绘制被标识为响应于查询121的一个或多个未汇编内容项所必需的一个或多个程序逻辑项。
程序逻辑搜索单元139可以发起程序逻辑数据库141的搜索140。程序逻辑数据库141可以包括多个程序逻辑项,诸如程序逻辑项141a、141b、141c、141d。程序逻辑项可以用于在由安装在客户端设备110上的移动应用提供的用户界面上绘制未汇编内容项。每个程序逻辑项可以包括多个可修改的属性。可修改属性可以包括例如布局属性、样式属性、动作、数据绑定定义等。每个相应的可修改属性可以被分配预定的默认值。特定类型的程序逻辑项可以与基于程序逻辑项将要用于绘制的未汇编内容的类型的一个或多个属性唯一相关联。在一些实施方式中,默认值可以由***运营商、内容提供商或另一方来确定。响应于搜索140的程序逻辑项然后可以被返回142到程序逻辑搜索单元139。
然后,服务器130可以基于一个或多个程序逻辑修改标签,为每个检索到的程序逻辑项修改与每个相应的程序逻辑项相关联的可修改属性。例如,服务器130可以使用与未汇编内容项134d相关联的程序逻辑类型150来创建未汇编内容项134d和具有相同程序逻辑标识符160的特定程序逻辑项(诸如程序逻辑项141d)之间的关联性。然后,服务器130可以使用与未汇编内容项134d相关联的一个或多个程序逻辑修改标签152,以便修改程序逻辑项141d的一个或多个可修改属性162、164。然后,程序逻辑项141d可以被内容汇编器用来在由安装在客户端设备110上的移动应用提供的用户界面上将未汇编内容项134d绘制为由程序逻辑修改标签152指定的汇编内容项。
程序逻辑项为***100的运营商提供了优势,因为***运营商可以使用程序逻辑项来确保未汇编的内容以满足***运营商的方式绘制在客户端设备110上。例如,***运营商可以使用程序逻辑项来确保未汇编内容绘制在图形用户界面上,使得诸如“绘制内容#1”180的绘制内容策略性地定位在由安装在客户端设备110中的移动应用提供的用户界面162的特定部分上,而不妨碍诸如搜索结果172和174的搜索结果的显示。
可替换地或附加地,***100的运营商可以使用程序逻辑项来确保未汇编内容项以适当的方式绘制,以满足施加给***100的运营商的用于显示内容的义务。例如,在未汇编内容项包括广告的某些实例中,可以对广告中某些未汇编内容项的绘制施加某些法律限制。例如,医药产品、烟草产品、酒精产品等的广告对于在显示这样的产品的广告时必须提供的数据类型上可能有特定的限制。程序逻辑项为***运营商提供了确保***100符合这样的限制的能力。
***100可以动态地使用程序修改标签和程序逻辑模板来绘制未汇编内容项。该***可以使用这些相应特征中的每一个来确保***运营商遵守与内容项的显示相关的某些限制,同时还允许内容提供商保持对内容提供商的内容项的绘制和显示的控制。这种利益平衡可以通过实施所公开的内容搜索和绘制***来实现,该***使用在客户端设备110上运行的程序的本地应用程序代码来将未汇编内容项绘制为汇编内容项,以绘制未汇编内容项,同时允许内容提供商和***运营商两者保持对绘制的控制。
逻辑数据库141的搜索140可以基于相应的程序逻辑类型150,该程序逻辑类型150与被标识为响应于查询121的未汇编内容项相关联。在一些实施方式中,程序逻辑类型150例如可以包括程序逻辑项标识符。可替换地或附加地,程序逻辑类型例如可以包括一类程序逻辑项。一类程序逻辑项例如可以包括购物、药品、电子产品等。然后,被确定为与程序逻辑类型150相关联的一个或多个程序逻辑项141a、141b、141c、141d可以被标识为绘制响应于查询121的未汇编内容所需要的。响应于搜索140而标识142的程序逻辑项可供客户端110下载。在一些实施方式中,可以搜索程序逻辑项的索引,并且所提供的结果142可以包括对存储响应于程序逻辑搜索140的程序逻辑项的网络资源的引用。
在这样的实例中,服务器130然后可以将包括(i)未汇编内容项和(ii)响应于查询121的相关联的程序逻辑项的数据124a直接发送到客户端设备110。在这样的实施方式中,一旦查询121的执行完成,服务器130可以向客户端设备110发送数据,该数据包括(i)所有未汇编内容项和(ii)响应于查询121的所有相关联的程序逻辑项。可替换地,当执行预提取例程时,服务器130可以递增地向客户端设备110发送数据,该数据包括(i)未汇编内容项和(ii)两个或多个(i)未汇编内容项和(ii)相关联的程序逻辑项的组中的相关联的程序逻辑项。该预提取例程向客户端设备110发送数据,该数据包括(i)未汇编内容项和(ii)响应于查询121的程序逻辑项的初始组,并且然后继续在后台执行未汇编内容项搜索查询121。这提供了以下优点:在服务器130在后台完成内容查询121的执行的同时,让客户端设备110接收初始批(i)未汇编内容项和(ii)相关联的程序逻辑项,并且然后开始使用相关联的程序逻辑项绘制初始批未汇编内容项。在这种示例中,从服务器130发送124到客户端110的数据124a可以类似地由客户端设备110接收125并输入113到API 111。
可替换地,服务器130可以生成搜索结果消息,该搜索结果消息包括对被标识为响应于查询121的一个或多个未汇编内容项的引用以及客户端设备为了绘制未汇编内容项所需的一个或多个程序逻辑项。在这样的实例中,服务器130可以将搜索结果消息发送到客户端设备110,该客户端设备接收具有对网络位置的引用的消息。客户端设备110可以将接收到的搜索结果消息提供给API 111。在接收到搜索结果消息时,API可以从由搜索结果消息中的引用(例如,URL)所标识的网络位置中自动检索未汇编内容项和相关联的程序逻辑项。然后,客户端设备110可以经由网络120从搜索结果消息中标识的网络位置下载未汇编内容项和程序逻辑项。可以将下载的未汇编内容项提供给API。
API 111充当服务器130的网络接口。API可以生成112对未汇编内容项的请求(诸如查询121),并且然后从服务器130接收包括未汇编内容项、程序逻辑项或两者的数据。可替换地,根据需要,API可以从服务器130接收搜索结果消息,该搜索结果消息包括对网络位置的引用,在该网络位置中,API可以下载一个或多个未汇编内容项、一个或多个程序逻辑项或者两者。此外,API还可以接收响应于查询121的一个或多个互联网搜索结果。API可以为每个互联网搜索结果和每个未汇编内容项生成标识符,并且使用相应的标识符来填充(populate)由诸如移动应用117的应用保持的搜索阵列118。可替换地,API可以从每个所获得的互联网搜索结果和未汇编内容项中提取标识符,该标识符可以用于填充搜索结果阵列118。在利用标识符填充搜索结果阵列118之前或之后,API可以在内容缓存116中缓存115所获得的未汇编内容项、程序逻辑项或两者。
搜索结果阵列118可以定义互联网搜索结果和绘制的内容项在阶段B处在图形用户界面160上出现的次序。搜索结果阵列118可以包括用于基于一个或多个搜索项162和响应于查询121获得的每个未汇编内容项而返回给客户端设备的每个互联网搜索结果的标识符的字段。例如,响应于基于搜索项162“鞋”而执行的搜索引擎查询,API 111可能已经接收到至少4个互联网搜索结果。此外,响应于搜索查询121,API 111可以接收至少2个未汇编内容项。互联网搜索结果中的每一个的标识符在图1中分别表示为“搜索结果#1”118a、“搜索结果#2”118c、搜索结果#3”118d和“搜索结果#4”118f。对于互联网搜索结果,标识符例如可以包括与互联网搜索结果相关联的网络位置(例如,URL)。类似地,未汇编内容项中的每一个的标识符在图1中分别表示“Content_Key#1”118b和“Content_Key#2”118e。搜索结果阵列118中标识符的次序可以基于服务器130、互联网搜索引擎、API 111或它们的组合所采用的一个或多个排序算法。
客户端设备111可以访问由移动应用117保持的搜索阵列118,以使用移动应用117的本地编程语言在阶段B绘制图形用户界面160。以移动应用程序117的本地编程语言绘制图形用户界面160例如包括使用移动应用所使用的相同编程语言(诸如C、Objective-C、C++、Java等)来绘制该组搜索结果170。
当绘制用户界面160时,客户端设备111将访问搜索结果阵列118中的每个条目。如果条目是互联网搜索结果,则客户端设备160将在用户界面160上生成搜索结果。例如,客户端设备可以访问搜索结果阵列118,获得与互联网搜索结果相关联的标识符(例如,URL),并提供该URL以在用户界面160上显示。根据该示例,客户端设备可以访问搜索结果阵列118中的条目118a,获得互联网搜索结果标识符(例如,URL),并且然后在用户界面160上显示互联网搜索结果“www.buyshoes.com”172。
然而,如果客户端设备160中的条目是诸如“Content_Key#1”的未汇编内容项的标识符,则在努力检索与对应于标识符“Content_Key#1”的未汇编内容项相关联的未汇编内容项和程序逻辑项时,客户端设备160可以将未汇编内容标识符的标识符发送119到内容缓存116。内容缓存116可以获得未汇编内容项134d和与未汇编内容项相关联的程序逻辑项141d,并且将未汇编内容项134d和程序逻辑项141d提供120到内容汇编器121。
内容汇编器121使用接收到的程序逻辑项141d以移动应用的本地编程语言绘制接收到的未汇编内容项134d。未汇编内容项134d的绘制包括例如基于程序逻辑项的一个或多个可修改属性的设置来格式化未汇编内容项。这包括,例如,修改由程序逻辑项指定的与未汇编内容项相关联的样式、布局和动作。
而且,内容汇编器121使用程序逻辑项141d来构建本地视图。例如,内容汇编器121可以使用由程序逻辑项141d指定的数据绑定定义来将未汇编内容项映射到移动应用117的用户界面元素。所定义的本地视图导致可重用(reusable)数据绑定映射的生成,该可重用数据绑定映射可以被重用于使用相同程序逻辑项的其他未汇编内容项。在已经建立视图的情况下,可以更有效地绘制附加的未汇编内容项,从而减少等待时间并降低汇编内容项的绘制产生“突进(pop-in)”效应出现的可能性。如上所述,内容汇编器的输出123是基于未汇编内容项134d的完全汇编内容项,该未汇编内容项134d已经使用由内容提供商和***100的运营商两者定义的程序逻辑项141d中阐述的特征进行了修改。客户端设备可以循环通过搜索结果阵列118中的每个条目,并绘制如上所述的搜索结果列表中的每个条目。
在内容汇编器121绘制和汇编未汇编内容项期间,内容汇编器121可以向绘制的汇编内容项分配一个或多个动作。分配给任何特定绘制和汇编内容项(诸如绘制和汇编内容项180)的特定动作基于用于绘制内容项的程序逻辑项的可修改属性中指定的动作。动作例如可以包括点击动作、悬停动作、选择动作和保持预定时间量等。在一个实施方式中,绘制和汇编内容项可以被分配向服务器130、由内容提供商控制的计算机、由***100的运营商控制的计算机等发送数据的动作,该动作指示已经选择了该绘制和汇编内容项。这样的发送的数据的每个例子可以随着时间的推移由服务器130、由内容提供商控制的计算机、由***100的运营商控制的计算机等聚合。这种事务的聚合数量可以提供用户与绘制和汇编内容项的交互水平的指示。
如上所述,内容汇编器121的输出123是基于未汇编内容项134d的完全汇编内容项,该未汇编内容项134d已经使用可以由内容提供商、***100的运营商或两者定义的程序逻辑项141d中阐述的特征进行了修改,如上所述。客户端设备可以循环通过搜索结果阵列118中的每个条目,并绘制如上所述的搜索结果列表中的每个条目。
用户可以通过滚动经过搜索结果170来与搜索结果170的列表进行交互,该搜索结果列表包括经由移动应用117的图形用户界面160提供的互联网搜索结果和绘制的汇编内容项。虽然搜索结果170的列表的部分将滚动出客户端设备110的显示器,并且搜索结果列表的新部分将滚动到客户端设备的显示器上,但是使用搜索结果阵列118将保留互联网搜索结果的原始次序。移动应用117根据需要将通过使用在搜索结果阵列118中遇到的相应内容标识符以从缓存116中检索未汇编内容项和相关联的程序逻辑来发起未汇编内容项的绘制,并且然后内容汇编器121使用其相关联的程序逻辑项来本地绘制相应的未汇编内容项。在某些实例中,除了使用缓存获得的性能增益之外,还可以通过使用可重用视图来获得附加的性能增益。
在***100中,该***被描述为经由网络120有助于客户端设备110和服务器130之间的直接通信。然而,本公开不必受限于此。例如,在一些实施方式中,移动应用117的第三方提供商可以要求来自API 111的与移动应用117相关联的查询根据需要使用一个或多个网络通过移动应用提供商的服务器发送。在这样的实例中,查询121可以被发送到第三方移动应用提供商的第三方服务器,并且然后第三方移动应用提供商可以将查询121转发到服务器130。接下来,第三方移动应用提供商可以从服务器130接收未汇编内容项、程序逻辑项或两者,并且然后将接收到的未汇编内容项、程序逻辑项或两者转发给客户端设备110。可替换地,来自服务器130的搜索结果消息,然后将搜索结果消息转发给客户端设备110。
在这样的可替换实施方式中,客户端设备110和服务器130通常执行与上面和下面描述的相同的操作。然而,这种可替换的实施方式允许第三方移动应用提供商的第三方服务器具有增强互联网搜索结果(但不增强未汇编内容项搜索结果)的能力。因此,在这样的实施方式中,第三方移动提供商可以拦截查询121,解密查询121(如果需要的话),并且然后使用查询121中包括的一个或多个搜索项执行附加搜索。然后,可以使用上述方法(例如,直接或经由搜索结果消息间接)将搜索结果返回给客户端设备110,并且与搜索引擎搜索结果和未汇编内容项一起用以填充搜索结果阵列,如上文关于互联网搜索结果所述。
图2是使用内容搜索引擎来检索未汇编内容的过程200的流程图。过程200将被描述为由一个或多个计算机的***执行,诸如图1中描述的内容搜索和绘制***100。
***从安装在客户端设备上的应用编程接口接收210查询。该查询例如可以包括一个或多个搜索项和上下文信息。该上下文信息可以包括,例如,(i)安装在客户端设备上并用于输入查询的应用标识符、(ii)安装在客户端设备上并用于输入查询的应用版本、(iii)安装在客户端设备上并用于生成查询、传输查询或两者的API版本、(iv)一个或多个客户端设备设置、(v)客户端设备版本、(vi)客户端设备的位置、(vii)客户端设备是否正在移动、(viii)由客户端设备缓存的一个或多个程序逻辑版本、(ix)或它们的组合。在一些实施方式中,接收到的查询可以是加密令牌的形式。加密令牌可以使用散列算法生成。***可以在收到令牌时解密加密的令牌。
***基于接收到的查询标识211一个或多个未汇编内容项。例如,***可以使用被包括在接收到的查询中的一个或多个关键词来执行内容项数据库的搜索。存储在内容项数据库中的内容项可以是二进制blob格式。可替换地,未汇编内容项可以包括在使用程序逻辑项在移动应用的图形界面上绘制内容项之前的任何格式的任何内容项。未汇编内容项可以包括图像、视频等。
在一个实施方式中,内容项数据库可以包括由内容提供商上传的内容项。例如,内容项可以包括一个或多个广告。内容项数据库的搜索不是对响应于查询的互联网搜索结果的搜索。相反,除了搜索内容项数据库之外,***可以使用互联网搜索引擎单独地执行单独的搜索,以便标识响应于查询的搜索结果。
存储在内容项数据库中或从内容项数据库中检索的每个未汇编内容项至少与程序逻辑类型相关联。程序逻辑类型例如可以包括程序逻辑标识符。程序逻辑标识符例如可以包括标识可以用于绘制相关联的未汇编内容项的特定组程序逻辑的数据。此外,存储在内容项数据库中或从内容项数据库中检索的每个未汇编内容项也可以与一个或多个程序逻辑修改标签相关联。程序逻辑修改标签可以包括启用或禁用程序逻辑项的属性的数据。可替换地或附加地,程序逻辑修改标签可以包括将程序逻辑项的属性值设置为特定值、特定设置或特定状态的数据。如果未汇编内容项与程序逻辑修改标签不相关联,则***将使用与未汇编内容项相关联的程序逻辑项的可修改属性的默认设置。在阶段212处,***获得在阶段211处标识的未汇编内容项中的一个。
***确定213客户端设备是否需要客户端设备绘制未汇编内容项所需的程序逻辑项的更新副本。确定客户端设备是否需要程序逻辑项的更新副本可以包括,例如,分析在阶段210处由***接收的查询。例如,***可以分析与查询相关联的上下文数据,以确定(i)安装在客户端设备上并用于输入查询的应用标识符、(ii)安装在客户端设备上并用于输入查询的应用版本、(iii)安装在客户端设备上并用于生成查询、传输查询或两者的API版本、(iv)一个或多个客户端设备设置、(v)客户端设备版本、(vi)客户端设备的位置、(vii)客户端设备是否正在移动、(viii)由客户端设备缓存的一个或多个程序逻辑版本、(ix)或它们的组合。作为示例,如果***确定未汇编内容项所需的并且安装在客户端设备上的程序逻辑项过时(例如,先前版本),则***然后可以确定客户端设备需要程序逻辑项的更新副本。可替换地,如果***确定未汇编内容项所需的并且安装在客户端设备上的程序逻辑项是当前的(例如,当前版本),则***然后可以确定客户端设备不需要程序逻辑项的更新副本。如果***确定客户端设备需要程序逻辑项的更新副本来绘制在阶段212处获得的未汇编内容项,则过程继续到阶段214。
在阶段214处,***使用与在阶段212处获得的未汇编内容项相关联的程序逻辑类型来从程序逻辑数据库获得程序逻辑项。从程序逻辑数据库获得程序逻辑项可以包括,例如,使用与在阶段212处获得的未汇编内容项相关联的程序逻辑类型来执行程序逻辑数据库的搜索。程序逻辑数据库可以包括多个程序逻辑项,这些程序逻辑项可以用于在安装在客户端设备上的应用的用户界面上绘制未汇编内容项。每个程序逻辑项可以包括多个可修改的属性。可修改属性可以包括例如布局属性、样式属性、动作、数据绑定定义等。每个相应的可修改属性可以被分配预定的默认值。在一些实施方式中,默认值可以由***运营商、内容提供商或另一方来确定。
在阶段215处,***配置所获得的程序逻辑项的一个或多个可修改属性。配置所获得的程序逻辑的一个或多个可修改属性可以包括,例如,使用与在阶段212处获得的未汇编内容项相关联的一个或多个程序逻辑修改标签来修改所获得的程序逻辑项。这样的修改可以包括使用一个或多个程序逻辑修改标签来例如启用或禁用程序逻辑项的一个或多个可修改属性。可替换地或附加地,这种修改可以包括使用一个或多个程序逻辑修改标签来将与程序逻辑项的可修改属性相关联的特定值设置为特定值、特定设置或特定状态。可替换地或附加地,配置所获得的程序逻辑项的一个或多个可修改属性可以包括,例如,接受与程序逻辑项相关联的一个或多个可修改属性的预定默认设置。在一些实例中,配置与所获得的程序逻辑项相关联的可修改属性可以包括修改程序逻辑项的一个或多个可修改属性和接受程序逻辑项的一个或多个可修改属性的一个或多个预定默认设置的组合。然而,在一些实例中,诸如当在阶段212处标识的未汇编内容项与一个或多个程序逻辑修改标签不相关联时,配置程序逻辑项的一个或多个可修改属性可以包括接受程序逻辑项的可修改属性的全部默认设置。
在阶段216处,未汇编内容项和程序逻辑项被添加到队列中,以用于由客户端设备下载。然后,***在阶段217处确定是否存在在阶段211处被标识为响应于在阶段210接收的查询的另一未汇编内容项。如果在阶段217处确定存在被标识为响应于在阶段210处接收的查询的另一未汇编内容项,则***返回到阶段212并执行阶段212和213的另一迭代,并且然后***将基于在阶段213处做出的确定沿着阶段213的分支中的一个继续执行过程200的迭代。可替换地,如果在阶段217处确定不存在被标识为响应于在阶段处210接收的查询的另一未汇编内容项,则***可以继续执行阶段218。
在阶段218处,***向客户端设备提供未汇编内容项、程序逻辑项或两者。特定的未汇编内容项、特定的程序逻辑项或两者可以包括那些先前在阶段216、220或两者处被标识为用于下载的未汇编内容项、程序逻辑项或两者。排队的项表示由***基于在阶段210处接收的所接收的搜索查询来标识的搜索结果。通过***向客户端设备提供未汇编内容项、程序逻辑项或两者可以包括,例如,***将包括排队的项的数据直接发送到客户端设备。然后,由客户端设备接收的未汇编内容项、程序逻辑项或两者可以被提供给存储在客户端设备上的API。
可替换地,***可以生成搜索结果消息。搜索结果消息可以包括对网络位置(诸如统一资源定位符(URL))的引用,其提供存储一个或多个未汇编内容项、一个或多个程序逻辑项或两者的服务器计算机的网络位置,这些内容项、程序逻辑项或两者先前在阶段216或220处被添加到队列中用于下载。然后,***可以向接收搜索结果消息的客户端设备发送搜索结果消息。客户端设备可以将接收到的搜索结果消息提供给应用编程接口(API)。在接收到搜索结果消息时,API可以从由搜索结果消息中的引用(例如,URL)标识的网络位置中自动检索一个或多个未汇编内容项和一个或多个程序逻辑项。可替换地,在其他实施方式中,***可以将包括响应于查询的未汇编内容项的数据直接发送到客户端设备。
在一些实例中,***可以在阶段213处确定客户端设备不需要程序逻辑项的更新副本来绘制在阶段212获得的未汇编内容项。例如,***可以分析与在阶段210处接收的查询相关联的上下文数据,并确定客户端设备包括未汇编内容项所需的并安装在客户端设备上的程序逻辑项是当前的(例如,当前版本)。因此,***可以前进到阶段220。
在阶段220处,***可以将未汇编内容项添加到队列以供由客户端设备下载。然后,***在阶段217处确定是否存在在阶段211处被标识为响应于在阶段210接收的查询的另一未汇编内容项。如果在阶段217处确定存在被标识为响应于在阶段210处接收的查询的另一未汇编内容项,则***返回到阶段212并执行阶段212和213的另一迭代,并且然后***将基于在阶段213处做出的确定沿着阶段213的分支中的一个继续执行过程200的迭代。可替换地,如果在阶段217处确定不存在被标识为响应于在阶段处210接收的查询的另一未汇编内容项,则***可以继续执行阶段218。***可以继续迭代地执行过程200,直到***确定客户端设备对于响应于在阶段210接收的查询的每个相应的未汇编内容项是否需要程序逻辑项的更新副本。
在一些实施方式中,***可以向客户端设备提供一组未汇编内容项、程序逻辑项或两者,该组包括少于添加到下载队列中可供显示的全部未汇编内容项的未汇编内容项和少于添加到下载队列中可供显示的全部程序逻辑项的程序逻辑项。例如,***可以基于流行度(例如,最多点击)、视图、最高总收入等对下载队列中未汇编内容项进行排序。然后,根据需要,***可以仅将未汇编内容项的子集以及它们相关联的程序逻辑项发送到客户端设备。例如,根据需要,***可以仅将前五个未汇编内容项及其相关联的程序逻辑项发送到客户端设备。
在一些实施方式中,***可以采用预提取例程,该预提取例程将未汇编内容项的初始子集及其相关联的程序逻辑项发送到客户端设备。客户端设备可以向API提供未汇编内容项的初始子集、缓存初始子集未汇编内容项、填充搜索结果阵列,并且然后开始基于未汇编内容项的初始集及其相关联的程序逻辑项来绘制一组移动应用搜索结果。在绘制移动应用搜索结果期间,该API可以监控尚未绘制以用于在一组移动应用搜索结果中显示的所缓存的未汇编内容项的数量。一旦尚未绘制的所缓存的未汇编内容项的数量下降到预定阈值以下,该API可以将服务器发送对未汇编内容项的另一请求作为后台进程。
然后,服务器可以在后台再次执行过程200,从而根据需要提取附加内容项及其相关联的程序逻辑项,同时客户端设备基于从服务器接收的未汇编内容项的初始集来绘制包括一个或多个经绘制和汇编的内容项的一组移动应用搜索结果。可以执行发送响应于后续后台查询的搜索结果的初始子集的这种预提取例程,以减少等待时间并消除在以本地编程语言绘制在移动应用的界面上的一组移动应用搜索结果中内容项的“突进”效应的出现。发生这样的益处是因为客户端设备可以开始使用未汇编内容项的初始集及其相关联的程序逻辑项来绘制一组移动应用搜索结果,而无需等待查询的执行以继续,无需等待响应于查询的未汇编内容项中的全部被下载到客户端设备等。
该***可以被配置为存储占位符,该占位符标记排序后的未汇编内容项中的位置。占位符可以用于确定,例如,哪些未汇编内容项被提供给客户端设备,哪些未被提供给客户端设备。例如,***在第五未汇编内容项之后的占位符可以指示在第五排序的未汇编内容项之后的未汇编内容项尚未可用于显示到客户端设备。
在随后的时间点处,客户端设备可以确定客户端设备正在接近搜索结果阵列中的最后一个内容项标识符。响应于这样的确定,客户端设备可以重新提交对未汇编项的查询。然后,作为响应,***可以处理该查询、分析与该查询相关联的上下文信息,并且根据需要使未汇编内容项的另一增量集及其相应的程序逻辑项可用于下载到客户端设备。例如,***可以根据需要使接下来的五个未汇编内容项及其相应的程序逻辑项可用于下载到客户端设备。
图3是用于使用客户端设备来使用程序逻辑绘制未汇编内容的过程的流程图。过程300将被描述为由***100的客户端设备执行。
客户端设备接收310由用户设备的用户输入到在用户设备上运行的移动应用的搜索区域中的一个或多个搜索项。客户端设备可以将在阶段310处接收的一个或多个搜索项提供给安装在客户端设备上的API。
安装在客户端设备上的API可以基于在阶段320处提供给API(并由API接收)的搜索项和上下文信息生成查询。该上下文信息可以包括,例如,(i)安装在客户端设备上并用于输入查询的应用标识符、(ii)安装在客户端设备上并用于输入查询的应用版本、(iii)安装在客户端设备上并用于生成查询、传输查询或两者的API版本、(iv)一个或多个客户端设备设置、(v)客户端设备版本、(vi)客户端设备的位置、(vii)客户端设备是否正在移动、(viii)由客户端设备缓存的一个或多个程序逻辑版本、(ix)或它们的组合。在一些实施方式中,API可以使用散列算法将查询加密成令牌。然后,该API可以经由一个或多个网络(诸如LAN、WAN、蜂窝网络、互联网或它们的组合)将查询发送340到内容服务器以请求内容。
响应于查询,安装在客户端设备上的API可以获得350一个或多个未汇编内容项、一个或多个程序逻辑项或者两者的组合。例如,在一些实施方式中,内容服务器可以自动地将数据直接发送到客户端设备,该数据包括响应于在阶段340处由客户端设备发送的搜索查询的一个或多个未汇编内容项、一个或多个程序逻辑项或者两者的组合。
可替换地,例如,在另一实施方式中,响应于在阶段340处发送的查询,该API可以从内容服务器接收搜索结果消息,该消息包括对存储一个或多个未汇编内容项、一个或多个程序逻辑项或两者的预定网络位置的引用。该API可以访问搜索结果消息并获得对存储一个或多个未汇编内容项、一个或多个程序逻辑项或两者的预定网络位置的引用。该引用可以包括例如统一资源***。该API可以发起到由搜索结果消息中的引用指定的网络位置的网络连接。然后,该API可以从由搜索结果消息中的引用指定的预定网络位置下载一个或多个未汇编内容项、一个或多个程序逻辑项或两者的组合。
API缓存在阶段350处获得的一个或多个未汇编内容项,一个或多个程序逻辑项或两者。缓存一个或多个未汇编内容项,一个或多个程序逻辑项或两者可以包括,例如,将一个或多个未汇编内容项,一个或多个程序逻辑项或两者存储在缓存存储器中。缓存存储器可以包括允许快速访问存储在缓存中的未汇编内容项、程序逻辑项或两者的高性能存储器设备。在一些实施方式中,当未汇编内容项、程序逻辑项或两者存储在缓存中时,或者在将未汇编内容项、程序逻辑项或两者都存储在缓存中之前的某个时间点处,API可以将内容标识符分配给每个相应的未汇编内容项。内容标识符可以用于从缓存中检索未汇编内容项。在一些实施方式中,API还可以将标识符分配给程序逻辑项。然而,可替换地,可以使用与每个未汇编内容项相关联的程序逻辑类型来标识特定的未汇编内容项的程序逻辑项。在其他实施方式中,API可以从每个相应的未汇编内容项、程序逻辑项、或者两者中提取或者以其他方式获得之前与相应的未汇编内容项、程序逻辑项或者两者相关联的标识符。
一旦被缓存,未汇编内容项、程序逻辑项或两者可以被快速访问,而不需要等待被缓存的未汇编内容项、程序逻辑项或两者从远程网络位置下载,直到这样的项需要被更新到新版本。因此,缓存未汇编内容项、程序逻辑项或两者的优点,减少了对网络带宽的消耗(drain),并且相对于不使用本文公开的内容搜索和绘制***的***减少了等待时间。等待时间的减少在于内容项的绘制,从而有助于避免在移动应用的图形用户界面中绘制内容项时可能发生的“突进”效应。
保持在客户端设备上的移动应用保持搜索结果阵列。该搜索结果阵列可以包括多个有序字段,这些有序字段建立移动应用搜索结果将被提供的次序。安装在客户端设备上的API被配置为利用一个或多个未汇编的内容标识符填充370搜索结果阵列的一个或多个字段。利用一个或多个未汇编的内容标识符填充搜索结果阵列可以包括,例如,将未汇编的内容标识符***到搜索结果阵列的字段中。该API还可以将一个或多个互联网搜索结果的标识符***到搜索结果阵列的相应字段中。
尽管该API可以将特定的未汇编的内容标识符***到搜索结果阵列中,但是本公开不需要受限于此。例如,在一些实施方式中,API可以仅仅将搜索结果阵列的特定字段标识为内容字段,而无需将未汇编的内容标识符***该字段。特定字段的这样的标识可以指定该字段接收内容项的未汇编内容项标识符,该内容项可以在移动设备上已经绘制初始移动应用搜索结果界面之后的稍后时间点下载。搜索结果阵列中被指定在稍后的时间点接收未汇编内容项的字段可以用于支持未汇编内容项的延迟绘制,如下面进一步描述的。
在一些实施方式中,互联网搜索结果和未汇编内容标识符在搜索结果阵列中的放置可以是预定的。例如,移动应用可以被配置为使互联网搜索结果标识符和未汇编的内容标识符在搜索结果阵列中交替。可替换地,例如,移动应用可以被配置为在每四个互联网搜索结果标识符***搜索结果阵列之后将一个未汇编的内容标识符***到搜索结果阵列中。互联网搜索结果标识符和未汇编内容标识符的其他配置可以用于填充搜索结果阵列。
在其他实施方式中,未汇编内容标识符的放置可以基于与由未汇编的内容标识符标识的内容项和由一个或多个互联网搜索结果标识的内容项相关联的相似性得分,当未汇编的内容标识符***到搜索结果阵列中时,该一个或多个互联网搜索结果将与未汇编的内容标识符相邻。也就是说,API可以在与内容相关联的搜索结果旁边***内容标识符,该内容与和未汇编的内容标识符相关联的内容足够相似。如果与特定未汇编的内容标识符相关联的内容被确定为满足关于与一个或多个搜索结果相关联的内容的预定相似阈值,则API可以将该内容标识符***到与指向足够相似的未汇编内容项的内容的搜索结果中的一个(或一对)相邻的搜索结果阵列中。
在客户端设备上运行的移动应用可以发起380移动应用搜索结果界面的显示,该显示包括(i)互联网搜索结果,和(ii)基于搜索结果阵列的汇编内容项。例如,移动应用可以逐个字段地访问搜索结果阵列,并且基于搜索结果阵列的每个相应字段在移动应用搜索结果界面上显示条目。例如,如果所访问的字段与互联网搜索结果相关联,则移动应用可以显示引用与互联网搜索结果相关联的互联网资源(例如,网页)的交互式统一资源定位符。
可替换地,如果,例如,所访问的字段与内容标识符相关联,该内容标识符与存储在缓存中由移动设备保持的特定未汇编内容项相对应,则移动应用可以从该缓存请求内容标识符和与该内容标识符相关联的程序逻辑项。如果存在缓存命(cache hit)中,并且在缓存中找到内容标识符和程序逻辑项,则客户端设备可以在阶段390处继续执行300。可替换地,如果存在缓存未命中,并且在缓存中没有找到未汇编内容项或程序逻辑项,则客户端设备可以从内容服务器请求未汇编内容项、相关联的程序逻辑项或两者。
客户端设备在阶段380处发起移动应用搜索结果界面的显示的示例被描述为提供搜索结果界面,该搜索结果界面包括(i)互联网搜索结果和(ii)汇编内容项。然而,本公开不必受限于此。例如,在阶段380处发起的互联网搜索结果界面可以只包括汇编内容项,而无需包括任何互联网搜索结果。例如,如果搜索结果阵列的每个字段仅填充有未汇编内容标识符,而没有任何互联网搜索结果标识符,则可能出现这样的情形。
在缓存命中的情况下,客户端设备可以向安装在移动设备上的内容汇编器提供未汇编内容项及其相关联的程序逻辑项。内容汇编器使用接收到的程序逻辑项,以移动应用的本地编程语言绘制390接收到的未汇编内容项。未汇编内容项的绘制包括例如基于程序逻辑项的一个或多个可修改属性的设置来格式化未汇编内容项。例如,这包括修改由程序逻辑项指定的与未汇编内容项相关联的样式、布局和动作。
除了格式化未汇编内容项之外,内容汇编器还使用程序逻辑项来构建本地视图。例如,内容汇编器可以使用数据绑定定义来将未汇编内容项映射到移动应用的用户界面元素。所定义的本地视图导致可重用数据绑定映射的生成,该可重用数据绑定映射可以被重用于使用相同模板的其他未汇编内容项。在已经建立视图的情况下,可以更有效地绘制附加的未汇编内容项,从而减少等待时间并降低“突进”效应的可能性。如上所述,内容汇编器的输出是基于未汇编内容项的完全汇编内容项,该未汇编内容项已经使用由内容提供商和***的运营商定义的程序逻辑项中阐述的特征进行了修改,如上所述。客户端设备可以循环通过搜索结果阵列中的每个条目,并绘制如上所述的搜索结果列表中的每个条目。
用户可以通过滚动经过搜索结果,与经由移动应用的图形用户界面提供的互联网搜索结果和汇编内容项的移动应用搜索结果列表进行交互。虽然移动应用搜索结果列表的部分将滚动出显示器,并且移动应用搜索结果列表的新部分将滚动到显示器上,但是将使用搜索结果阵列来保留互联网搜索结果的原始次序。移动应用将根据需要通过使用在搜索结果阵列中遇到的内容标识符从缓存中检索未汇编内容项和相关联的程序逻辑来绘制未汇编内容项,并且然后使用内容汇编器基于程序逻辑项来绘制未汇编内容项。在一些实例中,除了使用缓存来获得性能增益之外,还可以通过使用可重用视图来获得附加的性能增益。
在一些实施方式中,在用户滚动经过搜索结果列表时,移动应用可能会遇到尚未利用未汇编内容标识符来填充的、被指定为内容项的占位符的搜索结果阵列的字段。搜索结果阵列中的这样的占位符字段可能尚未被填充,因为内容服务器尚未完成在阶段340处发送的查询的执行。在这样的实例中,当在用户滚动动作期间遇到时,移动应用可以跳过搜索结果阵列中的空占位符条目,并提供搜索结果阵列中的下一个条目。然后,一旦查询的执行完成并且安装在客户端设备上的API接收到结果,客户端设备就可以将未汇编内容项标识符***搜索结果阵列中的占位符字段。然后,如果用户的滚动动作导致移动应用遇到被填充的占位符字段,则客户端设备可以使用存储在占位符条目中的未汇编内容项标识符将未汇编内容项绘制为汇编内容项以用于显示,从而从缓存请求未汇编内容项和程序逻辑项,并且然后使用程序逻辑项以移动应用的本地编程语言绘制未汇编内容项。
在一些实施方式中,客户端设备可以从***得到消息,该消息是内容服务器已经用尽搜索选项并且已经标识了响应于在阶段340处发送的查询全部可能的内容项。在这样的实例中,移动应用可以将搜索结果阵列视为该搜索结果阵列是循环的。例如,在用户滚动经过搜索结果时,移动应用可以重复地循环经过搜索结果阵列,以便创建无尽的汇编内容项被绘制以用于在移动应用的用户界面上显示的幻觉。
本说明书中描述的主题、功能操作和过程的实施例可以在数字电子电路***中、有形体现的计算机软件或固件中、计算机硬件(包括本说明书中公开的结构和它们的结构等同物)中,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即编码在有形非易失性程序载体上用于由数据处理装置执行或用于控制数据处理装置的操作的计算机程序指令的一个或多个模块。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号,该传播信号被生成以编码用于发送到合适的接收器装置的信息,以用于由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备,或者它们中的一个或多个的组合。
术语“数据处理装置”涵括用于处理数据的各种装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或多个计算机。该装置可以包括专用逻辑电路***,例如FPGA(field programmable gate array,现场可编程门阵列)或ASIC(applicationspecific integrated circuit,专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
计算机程序(也可以称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件***中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。可以部署计算机程序以将其在一个计算机上或在位于一个站点处或跨多个站点分布并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路***来执行,并且装置也可以实施为专用逻辑电路***,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适于执行计算机程序的计算机可以包括,作为示例,基于通用或专用微处理器或两者,或者任何其他类型的中央处理单元。一般而言,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或者被可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传送到一个或多个大容量存储设备,或者进行两者。然而,计算机不需要具有这样的设备。而且,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(personal digital assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位***(Global Positioning System,GPS)接收器或便携式存储设备(例如通用串行总线(universal serial bus,USB)闪存驱动器),仅举几个例子。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括例如EPROM、EEPROM和闪存设备的半导体存储器设备、磁盘(例如内部硬盘或可移动磁盘)、磁光盘、和CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备,例如CRT(cathode ray tube,阴极射线管)、LCD(liquid crystal display,液晶显示器)、LED(light-emitting diode,发光二极管)或OLED(organic light-emitting diode,有机发光二极管)监视器,以及用户可以通过其向计算机提供输入的键盘和指示设备,例如鼠标、轨迹球或触摸屏。其他类型的设备也可以被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学输入、语音输入或触觉输入。此外,计算机可以通过向用户使用的设备传送文档和从该设备接收文档来与用户交互,例如通过响应于从web浏览器接收的请求向用户的用户设备上的web浏览器传送网页。
本说明书中描述的主题的实施例可以在计算***中实施,该计算***包括例如作为数据服务器的后端组件、或者包括中间件组件(例如应用服务器)、或者包括前端组件(例如具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面或Web浏览器的客户端计算机)或者一个或多个这样的后端、中间件或前端组件的任何组合。***的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(local area network,LAN)、广域网(wide area network,WAN),例如因特网。
计算***可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络交互。客户端和服务器的关系由于在各个计算机上运行并且彼此具有的客户端-服务器关系的计算机程序而产生。
虽然本说明书包含许多具体的实施细节,但这些不应被解释为对所要求保护的范围的限制,而是作为对特定于特殊实施例的特征的描述。本说明书中在分离的实施例中的上下文中描述的某些特征也可以在单一实施例中以组合的方式实施。相反,在单一实施的上下文中描述的各种特征也可以被分开地在多个实施例中或在任何合适的子组合中实施。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至由此最初要求保护这些特征,但是在某些情况下来自要求保护的组合的一个或多个特征可以从该组合中删去,并且要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中以特殊的顺序描绘了操作,但是这不应该被理解为要求以所示的特殊的顺序或按顺次的顺序来执行这些操作、或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。而且,上述实施例中的各种***组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解的是,描述的程序组件和***总体上可以在单一软件产品中集成在一起或者被打包到多个软件产品当中。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中列举的动作可以以不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特殊的顺序或顺次的顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。可以从所描述的过程中提供其他步骤或阶段,或者可以去除步骤或阶段。因此,其他实施方式也在以下权利要求的范围内。

Claims (26)

1.一种由数据处理***执行的用于从存储未汇编内容项的数据库中提供与交互式用户界面相关联的内容的方法,所述方法包括:
从安装在客户端设备上的应用编程接口API接收对要呈现在应用中的内容项的查询,其中,所述查询包括(i)一个或多个关键词和(ii)上下文信息;
基于使用接收到的查询对所述数据库进行搜索来标识与(i)程序逻辑类型和(ii)一个或多个程序逻辑修改标签相关联的未汇编内容项,其中,所述未汇编内容项包括预先绘制的状态下的内容,并且所述程序逻辑类型包括标识程序逻辑项或绘制所述内容项的汇编版本所需的程序逻辑项的类别的数据;
基于所述接收到的查询,确定所述客户端设备是否需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本;以及
响应于确定所述客户端设备需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本:
基于所述程序逻辑类型,获得包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项;
基于所述上下文信息,确定所述程序逻辑项的一个或多个可修改属性,其中,一个或多个属性是从由以下各项组成的组中选择的属性:
所述客户端设备的一个或多个属性;
安装在所述客户端设备上的移动应用的一个或多个属性;以及
安装在所述客户端设备上的操作***的一个或多个属性;
基于所述一个或多个程序逻辑修改标签,修改所述程序逻辑项的一个或多个可修改属性,所述一个或多个程序逻辑修改标签包括启用或禁用所述程序逻辑项的属性或将所述程序逻辑项的属性的值设置为特定值、特定设置或特定状态的数据;并且
将包括(i)所述未汇编内容项和(ii)修改后的程序逻辑项的数据发送到所述应用编程接口,所述修改后的程序逻辑项使得所述客户端设备使用所述修改后的程序逻辑项以应用的编程语言,基于所述一个或多个可修改属性来在所述客户端设备处绘制所述内容项的汇编版本,其中,所述客户端设备基于在所述修改后的程序逻辑项中提供的指令,来绘制所述内容项的汇编版本。
2.如权利要求1所述的方法,进一步包括:
响应于确定所述客户端设备不需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本,将包括未汇编内容项的数据发送到所述应用编程接口,所述未汇编内容项将在所述客户端设备处使用在所述客户端设备上本地缓存的程序逻辑项的副本、以所述应用的编程语言被绘制为所述内容项的汇编版本。
3.如权利要求1或2所述的方法,其中,所述上下文信息包括程序逻辑项版本标识符。
4.如权利要求1所述的方法,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签启用所述程序逻辑项的一个或多个属性。
5.如权利要求1所述的方法,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签禁用所述程序逻辑项的一个或多个属性。
6.如权利要求1所述的方法,所述方法进一步包括:
从安装在所述客户端设备上的应用编程接口接收指示用户与所述内容项的汇编版本交互的数量的数据。
7.如权利要求1所述的方法,其中,所述程序逻辑类型包括程序逻辑标识符。
8.一种数据处理***,包括:
一个或多个计算机和存储指令的一个或多个存储设备,当所述指令被所述一个或多个计算机执行时,所述指令可操作以使所述一个或多个计算机执行用于从存储未汇编内容项的数据库中提供与交互式用户界面相关联的内容的操作,所述操作包括根据权利要求1至7中任一项所述的方法。
9.一种存储软件的非暂时性计算机可读介质,所述软件包括可由一个或多个计算机执行的指令,所述指令在这样执行时使得所述一个或多个计算机执行用于从存储未汇编内容的数据库中提供与交互式用户界面相关联的内容的操作,所述操作包括根据权利要求1至7中任一项所述的方法。
10.一种由搜索和检索数据处理***执行的用于搜索存储未汇编内容项的数据库的方法,所述方法包括:
从安装在客户端设备上的应用编程接口API接收对要呈现在应用中的内容项的查询,其中,所述查询包括(i)一个或多个关键词和(ii)上下文信息;
基于使用所接收到的查询对所述数据库进行搜索来标识与(i)程序逻辑类型和(ii)一个或多个程序逻辑修改标签相关联的未汇编内容项,其中,所述未汇编内容项包括预先绘制的状态下的内容,并且所述程序逻辑类型包括标识程序逻辑项或绘制所述内容项的汇编版本所需的程序逻辑项的类别的数据;
基于所述接收到的查询,确定所述客户端设备是否需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本;以及
响应于确定所述客户端设备需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本:
基于所述程序逻辑类型,获得包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项;
基于所述上下文信息,确定所述程序逻辑项的一个或多个可修改属性,其中,一个或多个属性是从由以下各项组成的组中选择的属性:
所述客户端设备的一个或多个属性;
安装在所述客户端设备上的移动应用的一个或多个属性;以及
安装在所述客户端设备上的操作***的一个或多个属性;
基于所述一个或多个程序逻辑修改标签修改所述程序逻辑项的一个或多个可修改属性,所述一个或多个程序逻辑修改标签包括启用或禁用所述程序逻辑项的属性或将所述程序逻辑项的属性的值设置为特定值、特定设置或特定状态的数据;并且
将包括(i)所述未汇编内容项和(ii)修改后的程序逻辑项的数据发送到所述应用编程接口,所述修改后的程序逻辑项使得所述客户端设备使用所述修改后的程序逻辑项以应用的编程语言,基于所述一个或多个可修改属性来在所述客户端设备处绘制所述内容项的汇编版本,其中,所述客户端设备基于在所述修改后的程序逻辑项中提供的指令,来绘制所述内容项的汇编版本。
11.如权利要求10所述的方法,进一步包括:
响应于确定所述客户端设备不需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本,将包括未汇编内容项的数据发送到所述应用编程接口,所述未汇编内容项将在所述客户端设备处使用在所述客户端设备上本地缓存的程序逻辑项的副本、以所述应用的编程语言被绘制为所述内容项的汇编版本。
12.如权利要求10或11所述的方法,其中,所述上下文信息包括程序逻辑项版本标识符。
13.如权利要求10所述的方法,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签启用所述程序逻辑项的一个或多个属性。
14.如权利要求10所述的方法,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签禁用所述程序逻辑项的一个或多个属性。
15.如权利要求10所述的方法,所述方法进一步包括:
从安装在所述客户端设备上的所述应用编程接口接收指示用户与所述内容项的汇编版本交互的数量的数据。
16.如权利要求10所述的方法,其中,所述程序逻辑类型包括程序逻辑标识符。
17.一种搜索和检索数据处理***,包括:
一个或多个计算机和存储指令的一个或多个存储设备,当所述指令由所述一个或多个计算机执行时,所述指令可操作以使所述一个或多个计算机执行用于搜索存储未汇编内容项的数据库的操作,所述操作包括:
从安装在客户端设备上的应用编程接口API接收对要呈现在应用中的内容项的查询,其中,所述查询包括(i)一个或多个关键词和(ii)上下文信息;
基于使用所接收到的查询对所述数据库进行搜索来标识与(i)程序逻辑类型和(ii)一个或多个程序逻辑修改标签相关联的未汇编内容项,其中,所述未汇编内容项包括预先绘制的状态下的内容,并且所述程序逻辑类型包括标识程序逻辑项或绘制所述内容项的汇编版本所需的程序逻辑项的类别的数据;
基于所述接收到的查询,确定所述客户端设备是否需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本;以及
响应于确定所述客户端设备需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本:
基于所述程序逻辑类型,获得包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项,
基于所述上下文信息,确定所述程序逻辑项的一个或多个可修改属性,其中,一个或多个属性是从由以下各项组成的组中选择的属性:
所述客户端设备的一个或多个属性;
安装在所述客户端设备上的移动应用的一个或多个属性;以及
安装在所述客户端设备上的操作***的一个或多个属性;
基于所述程序逻辑修改标签,修改所述程序逻辑项的一个或多个可修改属性,所述一个或多个程序逻辑修改标签包括启用或禁用所述程序逻辑项的属性或将所述程序逻辑项的属性的值设置为特定值、特定设置或特定状态的数据;并且
将包括(i)所述未汇编内容项和(ii)修改后的程序逻辑项的数据发送到所述应用编程接口,所述修改后的程序逻辑项使得所述客户端设备使用所述修改后的程序逻辑项以应用的编程语言,基于所述一个或多个可修改属性来在所述客户端设备处绘制所述内容项的汇编版本,其中,所述客户端设备基于在所述修改后的程序逻辑项中提供的指令,来绘制所述内容项的汇编版本。
18.如权利要求17所述的***,所述操作进一步包括:
响应于确定所述客户端设备不需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本,将包括未汇编内容项的数据发送到所述应用编程接口,所述未汇编内容项将在所述客户端设备处使用在所述客户端设备上本地缓存的程序逻辑项的副本、以所述应用的编程语言被绘制为所述内容项的汇编版本。
19.如权利要求17或18所述的***,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签启用所述程序逻辑项的一个或多个属性。
20.如权利要求17所述的***,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签禁用所述程序逻辑项的一个或多个属性。
21.如权利要求17所述的***,所述操作进一步包括:
从安装在所述客户端设备上的所述应用编程接口接收指示用户与所述内容项的汇编版本交互的数量的数据。
22.一种存储软件的非暂时性计算机可读介质,所述软件包括可由一个或多个计算机执行的指令,所述指令在这样执行时使得所述一个或多个计算机执行用于搜索存储未汇编内容项的数据库的操作,所述操作包括:
从安装在客户端设备上的应用编程接口API接收对要呈现在应用中的内容项的查询,其中,所述查询包括(i)一个或多个关键词和(ii)上下文信息;
基于使用所接收到的查询对所述数据库进行搜索来标识与(i)程序逻辑类型和(ii)一个或多个程序逻辑修改标签相关联的未汇编内容项,其中,所述未汇编内容项包括预先绘制的状态下的内容,并且所述程序逻辑类型包括标识程序逻辑项或绘制所述内容项的汇编版本所需的程序逻辑项的类别的数据;
基于所述接收到的查询,确定所述客户端设备是否需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本;以及
响应于确定所述客户端设备需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本:
基于所述程序逻辑类型,获得包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项;
基于所述上下文信息,确定所述程序逻辑项的一个或多个可修改属性,其中,一个或多个属性是从由以下各项组成的组中选择的属性:
所述客户端设备的一个或多个属性;
安装在所述客户端设备上的移动应用的一个或多个属性;以及
安装在所述客户端设备上的操作***的一个或多个属性;
基于所述一个或多个程序逻辑修改标签,修改所述程序逻辑项的一个或多个可修改属性,所述一个或多个程序逻辑修改标签包括启用或禁用所述程序逻辑项的属性或将所述程序逻辑项的属性的值设置为特定值、特定设置或特定状态的数据;并且
将包括(i)所述未汇编内容项和(ii)修改后的程序逻辑项的数据发送到所述应用编程接口,所述修改后的程序逻辑项使得所述客户端设备使用所述修改后的程序逻辑项以应用的编程语言,基于所述一个或多个可修改属性来在所述客户端设备处绘制所述内容项的汇编版本,其中,所述客户端设备基于在所述修改后的程序逻辑项中提供的指令,来绘制所述内容项的汇编版本。
23.如权利要求22所述的计算机可读介质,所述操作进一步包括:
响应于确定所述客户端设备不需要包括用于绘制所述未汇编内容项的汇编版本的指令的程序逻辑项的更新副本,将包括未汇编内容项的数据发送到所述应用编程接口,所述未汇编内容项将在所述客户端设备处使用在所述客户端设备上本地缓存的程序逻辑项的副本、以所述应用的编程语言被绘制为所述内容项的汇编版本。
24.如权利要求22或23所述的计算机可读介质,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签启用所述程序逻辑项的一个或多个属性。
25.如权利要求22所述的计算机可读介质,其中,基于所述程序逻辑修改标签修改所述程序逻辑项包括:
基于所述程序逻辑修改标签禁用所述程序逻辑项的一个或多个属性。
26.如权利要求22所述的计算机可读介质,所述操作进一步包括:
从安装在所述客户端设备上的所述应用编程接口接收指示用户与所述内容项的汇编版本交互的数量的数据。
CN201680091650.9A 2016-12-16 2016-12-16 内容搜索引擎 Active CN110088752B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/067384 WO2018111307A1 (en) 2016-12-16 2016-12-16 Content search engine

Publications (2)

Publication Number Publication Date
CN110088752A CN110088752A (zh) 2019-08-02
CN110088752B true CN110088752B (zh) 2023-07-18

Family

ID=57708876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680091650.9A Active CN110088752B (zh) 2016-12-16 2016-12-16 内容搜索引擎

Country Status (4)

Country Link
US (1) US20190317970A1 (zh)
EP (1) EP3555765B1 (zh)
CN (1) CN110088752B (zh)
WO (1) WO2018111307A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3874761A4 (en) * 2018-10-29 2022-07-20 Commercial Streaming Solutions Inc. SYSTEM AND METHOD FOR CUSTOMIZING INFORMATION FOR DISPLAY TO MULTIPLE USERS THROUGH MULTIPLE DISPLAY SCREENS
US11275801B1 (en) * 2019-03-05 2022-03-15 Sprint Communications Company L.P. Performance metrics collection and promulgation from within a mobile application
CN112084395A (zh) * 2020-09-25 2020-12-15 百度国际科技(深圳)有限公司 搜索方法、搜索装置、电子设备和存储介质
US11379281B2 (en) * 2020-11-18 2022-07-05 Akamai Technologies, Inc. Detection and optimization of content in the payloads of API messages

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542039A (zh) * 2010-12-27 2012-07-04 微软公司 远程执行的应用的发现
CN104067274A (zh) * 2012-01-19 2014-09-24 谷歌公司 用于改进对搜索结果的访问的***和方法
US8990298B1 (en) * 2013-11-05 2015-03-24 Tealium Inc. Universal visitor identification system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522131B1 (en) * 2004-04-14 2013-08-27 Sprint Spectrum L.P. Intermediation system and method for enhanced rendering of data pages
US20060161541A1 (en) * 2005-01-19 2006-07-20 Microsoft Corporation System and method for prefetching and caching query results
US20100131541A1 (en) * 2008-11-24 2010-05-27 John Lee Simultaneous searching using multiple search engines via client application
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
US8977653B1 (en) * 2010-06-17 2015-03-10 Google Inc. Modifying web pages to reduce retrieval latency
WO2014183034A1 (en) * 2013-05-10 2014-11-13 Uberfan, Llc Event-related media management system
US9122657B2 (en) * 2013-05-16 2015-09-01 International Business Machines Corporation Webpage display system leveraging OSGI
US9311407B2 (en) * 2013-09-05 2016-04-12 Google Inc. Native application search results
US9940646B2 (en) * 2013-11-13 2018-04-10 Google Llc Dynamic insertion of content items into resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542039A (zh) * 2010-12-27 2012-07-04 微软公司 远程执行的应用的发现
CN104067274A (zh) * 2012-01-19 2014-09-24 谷歌公司 用于改进对搜索结果的访问的***和方法
US8990298B1 (en) * 2013-11-05 2015-03-24 Tealium Inc. Universal visitor identification system

Also Published As

Publication number Publication date
WO2018111307A1 (en) 2018-06-21
EP3555765A1 (en) 2019-10-23
CN110088752A (zh) 2019-08-02
EP3555765B1 (en) 2023-10-11
US20190317970A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
KR102185864B1 (ko) 프레젠테이션을 위한 네이티브 콘텐츠의 서버측 렌더링 방법 및 시스템
US9798531B2 (en) Dependency-aware transformation of multi-function applications for on-demand execution
US10565255B2 (en) Method and system for selecting images based on user contextual information in response to search queries
WO2017041359A1 (zh) 信息推送方法、装置、设备及非易失性计算机存储介质
US9952848B2 (en) Dependency-aware transformation of multi-function applications for on-demand execution
US20140040231A1 (en) Methods and systems for searching software applications
CN104850546B (zh) 移动媒介信息的展示方法和***
CN110088752B (zh) 内容搜索引擎
WO2014132404A1 (ja) 情報処理装置、情報処理方法、情報処理プログラム、表示制御装置、および表示制御プログラム
CN105027121A (zh) 对本机应用的应用页面建索引
US10789287B2 (en) Method and system for multi-dimensional image matching with content in response to a search query
US10909170B2 (en) Method for processing and rendering feed-like based images for mobile devices
US11669550B2 (en) Systems and methods for grouping search results into dynamic categories based on query and result set
KR102352654B1 (ko) 추론된 의도에 기반한 로컬 확장 트리거
US10423710B2 (en) Browser plug-in with document modification and feedback capability
CN107491465B (zh) 用于搜索内容的方法和装置以及数据处理***
US8290928B1 (en) Generating sitemap where last modified time is not available to a network crawler
US11308154B2 (en) Method and system for dynamically overlay content provider information on images matched with content items in response to search queries
CN107430614B (zh) 到对应资源的应用局部深度链接
US20170193119A1 (en) Add-On Module Search System
US10567845B2 (en) Embeddable media content search widget
US11361048B2 (en) Conditional interpretation of a single style definition identifier on a resource
US10496698B2 (en) Method and system for determining image-based content styles
US20190171694A1 (en) Preview of downloadable fonts
WO2015176415A1 (zh) 一种向用户提供目标信息的方法与装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant