自动信息检索
分案说明
本申请属于申请日为2016年9月23日的中国发明专利申请201680038242.7的分案申请。
技术领域
本说明书涉及例如由搜索引擎进行的自动信息检索。
背景技术
在互联网上可用的数字内容经常由用户在移动装置上消费。例如,移动装置包括为用户提供对数字内容的访问权限的原生应用。数字内容的消费是可以用来提高提供给用户的搜索结果的准确性的一种类型的用户行为。
发明内容
一般而言,本说明书中描述的主题的一个创新方面可以体现为使由用户访问的原生应用内容对搜索引擎可用的方法。例如,响应于接收到与查看内容有关的搜索查询,搜索引擎可以生成搜索结果,该搜索结果包括对查看内容的参考。具体地,搜索引擎可以访问索引内与原生应用内容相关联的数据集合,并且响应于接收到搜索查询,搜索引擎可以使用所存储的数据集合来生成搜索结果页,该搜索结果页参考查看内容并且提供到查看内容的链接,该链接在被启用时启动原生应用。
此处讨论的系统收集关于用户的个人信息或者可以使用个人信息的情况下,可以为用户提供如下机会:控制程序或者特征是否收集个人信息——例如,关于用户的社交网络、社会行动或者活动、职业、用户的偏好、或者用户的当前位置的信息;或者控制是否和/或如何接收来自可能与用户更加相关的内容服务器的内容。另外,在存储或者使用特定数据之前,可以按照一种或者多种方式来将该特定数据匿名化,从而可以去除个人可识别信息。例如,可以将用户的身份匿名化,使得无法为用户确定个人可识别信息,或者在获得位置信息的情况下可以使用户的地理位置一般化——诸如至城市、ZIP代码、或者州级,使得无法确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息并且通过内容服务器使用该信息。
实施方式可以包括以下特征中的一个或多个。例如,由搜索引擎从移动装置接收由移动装置上的原生应用生成的数据集合,该数据集合包括:(i)识别原生应用的数据;(ii)查看内容的表示;以及(iii)到查看内容的链接,该链接在被选择时在原生应用中启动查看内容;由搜索引擎将(i)识别原生应用的数据和(ii)到查看内容的链接与查看内容相关联地存储;以及在生成搜索结果中使用存储的数据集合,该搜索结果(i)参考查看内容,并且(ii)包括到查看内容的链接,该链接在被选择时在原生应用中启动查看内容。
其他版本包括编码在计算机存储装置上的对应系统和计算机程序,被配置为执行方法的动作。
一种或者多种实施方式可以包括以下可选特征。例如,在一些实施方式中,响应于接收到的搜索查询而将搜索结果返回给用户。作为进一步的示例,查看内容的表示包括来自查看内容的关键字、或者与查看内容相关联的标识符。
在一些实施方式中,数据集合进一步包括(iv)识别移动装置的用户的信息。
在一些实施方式中,访问控制列表指定查看内容被分类为私有内容还是公共内容。
在一些实施方式中,到查看内容的链接包括深链接。
在一些实施方式中,在生成搜索结果中使用存储的数据集合包括:从第二移动装置接收搜索查询;将查看内容识别为对搜索查询的响应;确定原生应用安装在第二移动装置上;以及响应于确定原生应用安装在第二移动装置上,生成搜索结果,该搜索结果(i)参考查看内容并且(ii)包括到查看内容的链接,该链接在被选择时在原生应用中启动查看内容。可替代地,如果在接收到搜索查询并且将查询内容识别为对搜索查询的响应之后确定在第二移动装置上没有安装原生应用,则方法可以包括:确定另一兼容平台来在第二移动装置上显示相关联的内容。
本说明书中描述的主题的特定实施方式可以被实施以实现以下优点中的一个或者多个。例如,存储在原生应用页面的应用页面索引中的信息可以从实际应用页面数据中获得,并且因此可以提供比原生应用外部的以及描述原生应用的元数据所提供的对应用内容的更全面的描述。这还可以向搜索引擎提供如下能力:比基于描述原生应用的元数据相关度量更准确地确定相关度量。具体地,原生应用页面的应用页面索引可以向搜索引擎提供呈现考虑了在原生应用的应用页面内提供的实际数据的原生应用的表面搜索结果的能力。这可能比仅仅依赖于诸如原生应用的标题和描述的描述原生应用原生应用的元数据更准确,并且还可以使内容发布者免于对元数据执行搜索引擎优化以确保响应于特定查询能够识别原生应用。因此,本说明书中描述的主题的实施方式可以提供改进的搜索和检索,例如,检索到的文件与搜索查询更准确地匹配。
以二进制的形式访问应用页面数据的实施方式能够减少在使用获得这种数据的技术时产生的描述错误——诸如光学字符识别错误——的可能性。另外,以二进制的形式访问数据还可以识别将从视图隐藏的数据,诸如在必须驱动可滚动元素以使视图在应用环境内移动的情况下。应用页面数据的收集可以使用原生应用作为应用页面数据的源,因此,描述应用的数据的收集可以按照比收集来自多个不同网站的元数据的方式更及时的方式来完成。同样,与收集来自多个不同网站的元数据相比较,以这种方式的应用页面数据的收集可能有更好的可扩展性。
在附图和以下描述中陈述了一种或多种实施方式的细节。其他潜在特征和优点通过说明书、附图、和权利要求书将变得显而易见。
这些方面的其他实施方式包括对应系统、设备以及编码在计算机存储装置上的计算机程序,该计算机程序被配置为执行方法的动作。
附图说明
图1图示了可以用于为原生应用数据建立索引的示例性系统。
图2图示了可以用于为原生应用数据建立索引的示例性过程。
图3是可以实施本文所描述的过程或者其部分的计算装置的框图。
在附图中,相同的参考数字至始至终都表示对应部件。
具体实施方式
根据一种一般的实施方式,假设原生应用上的内容消费随着移动装置上的可用内容的增加而显著增加,搜索引擎将可以访问由这些原生应用生成的用户活动数据。具体地,除了诸如之前提交的搜索查询、通过web浏览器访问的内容、或者针对呈现的搜索结果的用户响应的用户活动数据之外,搜索引擎还可以访问由独立于搜索引擎操作的原生应用生成的用户活动数据。当搜索引擎考虑到这种用户活动数据时,这种用户活动数据允许生成搜索结果以反映移动装置上的绝大部分的用户活动,这会提高搜索查询性能。
因此,描述了使原生应用内容对搜索引擎可用的技术,用于响应于与原生应用内容有关的后续搜索查询来生成搜索结果。具体地,搜索引擎可以将与原生应用内容相关联的数据集合存储在索引中,并且响应于接收到相关搜索查询,使用存储的数据集合来生成搜索结果集合,其参考查看内容并且提供到查看内容的链接,当该链接被启用时,运行原生应用。
如本文所使用的,原生应用可以生成应用页面以在原生应用的环境内的移动装置上进行显示,并且可以独立于移动装置上的应用操作。例如,原生应用可以是专门设计来在特定移动装置操作系统和机器固件上运行的应用。因此,原生应用与基于浏览器的应用和浏览器渲染的资源不同。每当对从web服务器下载的元件或者指令进行实例化或者渲染时,后者便可能会需要元件或者指令中的全部或者至少一些。另外,基于浏览器的应用和浏览器渲染的资源可以由浏览器内的所有具有web能力的移动装置处理,并且因此不是操作系统专用。
为了为原生应用建立数据索引,系统可以对虚拟机进行实例化,该虚拟机对在移动装置上运行的操作系统进行模拟。在虚拟机内,系统可以对操作系统专用的原生应用进行实例化。例如,原生应用可以生成应用页面以在原生应用内的移动装置上进行显示,并且可以独立于移动装置上的浏览器应用操作。
系统可以在虚拟机内访问原生应用的应用页面。例如,系统可以通过使用探索每个应用页面和每个后续应用页面的各种菜单和选项的自动化过程来访问页面。可替代地,系统可以访问由原生应用的特定发布者指定的特定应用页面。
针对应用页面中的每个应用页面,系统可以生成描述应用页面的内容的应用页面数据。例如,由应用页面数据描述的查看内容可以包括当移动装置显示应用页面时移动装置在应用页面上显示的文本、定义将在原生应用中被渲染的应用页面的图像的图像数据、描述应用页面的各种列表和菜单的列表/菜单数据、或者描述应用页面的其他特征的其他数据。
可以在可由搜索引擎搜索的索引中为原生应用的应用页面建立索引。例如,搜索引擎可以将参考可以在移动装置上的浏览器应用中被渲染的web资源的web资源搜索结果与指定原生应用的原生应用搜索结果组合在一起。原生应用搜索结果可以部分响应于原生应用的应用页面的索引搜索而生成。
下面更详细地描述了系统为应用页面数据和应用页面的搜索结果的处理建立索引的操作。
图1图示了可以用于为原生应用数据建立索引的示例性系统100。一般而言,用户102a使用第一移动装置106a上的原生应用104a来访问内容,该内容可以作为数据集合108a被发送至搜索引擎110并且被存储在索引120中。然后,搜索引擎110可以接收来自第二移动装置106b的后续搜索查询108b,并且响应于接收到的搜索查询108b,生成搜索结果页130。然后,第二移动装置的用户102b可以在包括在搜索结果页130中的链接132上提供用户输入134,该链接然后在第二移动装置106b上运行原生应用104b。(应该注意,使用术语“第一移动装置”和“第二移动装置”纯粹是为了便于描述,并且,在原则上,第一移动装置106a和第二移动装置106b可以是相同的移动装置——虽然图1示出了由不同的移动装置106b发送至使用原生应用104a来访问内容的移动装置106a的后续搜索查询108b,但是后续搜索查询原则上可以由使用原生应用104a来访问内容的相同移动装置106a发送。)
更详细地,移动装置106a至106b可以是包括移动操作系统的任何类型的移动计算装置,诸如例如智能手机、平板计算机、或者膝上型计算机。原生应用104a至104b可以是分别安装在移动装置106a至106b的计算机可读存储介质上并且被配置为在移动装置106a至106b的操作系统上执行的移动应用。例如,原生应用104a至104b可以是包括在移动装置106a至106b的操作系统内的应用——例如电子邮件应用、消息传递应用、或者从应用商店安装的应用——例如第三方新闻阅读器应用。在一些情况下,原生应用104a至104b还可以由内容提供商提供来使用户102a至102b能够访问分别由原生应用104a至104b显示的查看内容。
在一些实施方式中,原生应用104a可以提取包括由用户102a在原生应用104a上访问的查看内容的表示的数据。查看内容的表示可以包括从查看内容提取的关键字、或者将用户102a引导至在原生应用104a上的查看内容的显示的超链接。例如,在一些情况下,关键字可以是查看内容内可以用于识别查看内容的常见术语。在其他情况下,超链接可以是将指令传输至移动装置106a以执行原生应用104a来显示查看内容的深链接。
在一些实施方式中,数据集合108还可以包括用户102a的用户信息。该用户信息可以包括移动装置106a的硬件装置标识符、与针对原生应用104a的用户账户或者订阅有关的账户信息、或者使搜索引擎110能够将数据集合108与用户102a相关联的其他类型的信息。例如,在一些实例中,可以收集与用户102a有关的人口统计信息以聚集从在原生应用104a上可用的特定类型的内容收集到的数据。
在一些实施方式中,数据集合108还可以包括访问控制列表,该访问控制列表指定例如由用户102a访问的查看内容应该被分类为私有内容还是公共内容。例如,访问控制列表可以识别特定用户并且指定每个用户的允许、拒绝、或者审计的访问权限。例如,被分类为私有的数据可以包括使用用户信息,诸如,账户登录和密码、支付信息、或者用户102a希望保持私有的其他类型的信息。在其他示例中,被分类为公共的数据可以包括可以用于聚集来自访问原生应用104a上的特定内容的多个用户的用户活动数据的信息。例如,指示用户102a读过的文章的数据、或者由用户102a在原生应用104a上提供的搜索查询可以用于聚集来自多个用户的数据以确定与原生应用104a上的查看内容有关的用户活动模式。
如图1中的示例所示,用户102a可以查看原生应用104a上与新闻有关的内容,该原生应用104a可以是向用户102a提供来自数字出版物的新闻文章的新闻阅读器应用。如图所示,用户102b可以使用新闻阅读器应用阅读标题为“Life on Mars finally a reality”的文章。新闻阅读器应用可以收集表示原生应用104a上的用户活动的数据集合108a,诸如与由用户102a访问的新闻文章有关的信息。
搜索引擎110可以是软件系统,该软件系统包括用于接收与原生应用104a上的内容有关的数据集合108的搜索基础架构,并且被设计为基于接收到的数据集合108a和搜索查询108b来搜索互联网上的信息。例如,搜索引擎可以通过与移动装置106a至106b耦合的网络耦合至搜索基础架构。搜索引擎10可以实施在软件、固件、硬件、或者任何组合中。例如,在一些实施方式中,搜索引擎110可以集成到服务器中,该服务器可以与web服务器(未示出)通信或者是web服务器的部分。在这种实施方式中,搜索引擎110可以通过在诸如例如移动装置106a和106b的远程客户端装置上运行的相应浏览器来搜索互联网上的信息。
搜索引擎110可以访问接收到的数据集合108a以从数据集合108a中提取信息并且将信息存储在索引120内。例如,搜索引擎110可以使用搜索引擎架构所使用的通用搜索引擎索引技术来生成索引120。可以将索引120内的提取到的信息存储在查看内容信息表122中。
如图1中的示例所示,查看内容信息表122可以包括与由用户102a在原生应用104a中访问的查看内容有关的信息。如图所示,例如,查看内容信息表122包括指示用户102a何时访问过原生应用104a中的查看内容的“TIMESTAMP(时间戳)”、指示原生应用104a使用来加载查看内容的“LINK INFO(链接信息)”、表示与原生应用104a相关联的唯一应用标识符的“APP ID”、和对原生应用104a上出现的内容的类型进行分类的“CONTENT TYPE(内容类型)”。
搜索引擎110还可以接收来自用户的搜索查询。例如,如图1中的示例所示,搜索引擎110接收术语“PLANET”的搜索查询108b,该搜索查询108b是通过使用移动装置106b来发送的。响应于接收到搜索查询108b,搜索引擎110可以基于将包括在搜索查询108b中的术语与包括在索引120中的信息进行比较来确定在查看内容信息表122内与包括在搜索查询108b中的术语有关的信息。例如,如图所示,搜索引擎110可以确定出现在原生应用104a上的查看内容与搜索查询108b“PLANET”有关,因为查看内容信息表122指示新闻文章的标题“Life on Mars finally a reality”包括相关术语“MARS”。搜索引擎110然后可以响应于接收到搜索查询108b来在移动装置106b上生成搜索结果页130。例如,可以在移动装置106b上的web浏览器中显示搜索结果页130。
如图1中的示例所示,搜索结果页130包括基于搜索引擎110确定了搜索查询108与包括在索引120的查看内容信息表122中的信息有关来对原生应用104a中的查看内容进行的参考。搜索结果页130包括链接132,该链接132可以由用户输入134激活。例如,用户输入134可以包括:例如,在链接132的文本上方使用鼠标或者触摸输入的“单击”。一旦链接132被激活,则移动装置106b在原生应用104b中运行查看内容。
在一些实施方式中,链接132可以是具有嵌入信息的深链接,该嵌入信息向移动装置106b提供计算机实现的指令集合以运行原生应用104b,从而描绘与包括在查看内容信息表122中的信息相关联的内容。
在一些实施方式中,搜索引擎110可以响应于接收到搜索查询108b来执行与原生应用104b有关的附加或者替代操作。例如,搜索引擎110最初可以确定查看内容信息表112中的查看内容是否响应于搜索查询108b,并且响应于确定查看内容响应于搜索查询108b,生成搜索结果页130。在这种情况下,如果确定查看内容响应于搜索查询108b,则搜索引擎110可以仅仅包括搜索结果页130中的链接132。例如,如果搜索查询108b不包括与查看内容信息表122内的信息有关的术语,则搜索引擎在生成搜索结果页130时可以忽略索引120内的数据集合108a。
如图1中的示例所示,搜索结果页130包括到“News Reader”原生应用的超链接,该超链接显示标题为“Life on Mars finally a reality”的新闻文章。在接收到激活超链接的用户输入时,移动装置106b然后可以运行“News Reader”原生应用以显示新闻文章“Lifeon Mars finally a reality”。如示例所描绘的,系统100可以用于基于搜索引擎110接收到指示用户102a和102b可能对与太空有关的相似话题有兴趣的数据,将用户102a和102b之间可能有兴趣的公共新闻文章内容相关联。
在一些实施方式中,在用户102b激活链接132之后,移动装置106b然后可以将数据集合108c传输至搜索引擎110,该搜索引擎110然后对原生应用104a和104b之间的共享内容的查看内容信息表112进行更新。在这种实施方式中,在后续的用户访问了相关联的查看内容以基于多个用户的内容来收集查看内容的聚集信息之后,搜索引擎110可以递归地生成索引120。
在一些实例中,原生应用104b可以是与显示相同内容的原生应用104a不同的应用。在该实例中,内容提供商可以在移动装置上运行的不同类型的原生应用上提供查看内容。例如,查看内容可以是在多个移动平台上发布并且由各种原生应用访问的新闻文章。
在用户102b激活链接132时移动装置106b上没有安装原生应用104b的一些实例中,系统100还可以确定另一兼容平台来显示相关联的内容。针对图1中的示例,除了运行原生应用104b的移动装置106b之外,移动装置106b还可以在移动装置106b上的web浏览器应用上显示新闻文章。
图2图示了可以用于为原生应用数据建立索引的示例性过程200。简而言之,过程200可以包括:接收数据集合(210)、存储数据集合(220)、和使用存储的数据集合(230)。
更详细地,过程200可以包括:接收数据集合(210)。例如,搜索引擎110可以从移动装置106a接收由移动装置106a上的原生应用104a生成的数据集合108a。数据集合108a可以包括识别原生应用104a的数据、查看内容的表示、和到查看内容的链接,当该链接被选择时,在原生应用104a中运行查看内容。例如,如图1所示,查看内容可以是显示在原生应用104a上的新闻文章,该原生应用104a可以是新闻阅读应用。
过程200可以包括:存储数据集合(220)。例如,搜索引擎110可以将标识原生应用104a的数据和到查看内容的链接与查看内容相关联地存储。例如,如图1所示,索引120可以包括查看内容信息表122,该查看内容信息表122包括来自接收到的数据集合108a的信息。例如,信息可以包括在用户102a访问查看内容时出现的时间戳、与到查看内容的链接有关的信息、标识原生应用104a的原生应用标识符、或者查看内容的类别。
过程200可以包括:使用存储的数据集合(230)。例如,响应于搜索查询——例如来自移动装置106b的搜索查询108b,搜索引擎110可以使用索引120上的存储的数据集合来生成搜索结果页130。例如,搜索结果页130可以参考查看内容,并且可以包括链接132,当该链接132被选择时,其在原生应用104b中运行查看内容。用户可以通过使用用户输入134来选择链接132。在一些实例中,在用户输入134之后,可以将数据集合108c传输至搜索引擎110,然后,该搜索引擎110在移动装置106b访问原生应用104b之后对索引120进行更新。
图3是作为客户端或者服务器或者多个服务器的可以用于实施本文中描述的系统和方法的计算装置300的框图。计算装置300旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、主机和其他合适的计算机。
计算装置300包括处理器302、存储器304、存储装置306、连接至存储器304和高速扩展端口310的高速接口308、以及连接至低速总线314和存储装置306的低速接口312。组件302、304、306、308、310和312中的每一个都通过使用各种总线来互连,并且在适当时可以按照其他方式安装在共用主板上。处理器302可以处理在计算装置300内执行的指令,该指令包括:存储在存储器304中或者在存储装置306上用于显示在外部输入/输出装置——诸如耦合至高速接口308的显示器316——上的GUI的图形信息。在其他实施方式中,在适当时可以使用多个处理器和/或多个总线连同多个存储器和多种类型的存储器。同样,多个计算装置300可以与提供必要操作的部分的每个装置连接在一起,例如,作为服务器组、一组刀片式服务器、或者多处理器系统。
计算装置300可以实施为多种不同的形式,如图所示。例如,计算装置300可以实施为标准服务器320,或者可以多次实施在一组这样的服务器中。计算装置300还可以实施为机架式服务器系统324的部分。另外,计算装置300还可以实施在个人计算机中,诸如膝上型计算机322。可替代地,来自计算装置300的组件可以与移动装置(未示出)中的其他组件组合。这些装置中的每一种都可以包含一个或者多个计算装置300,并且整个系统可以由彼此通信的多个计算装置300组成。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或这些实施方式的组合中实现。各种这样的实施方式可以包括在一个或者多个计算机程序中的实施方式,该一个或者多个计算机程序在可编程系统上是可执行和/或可解释的,该可编程系统包括至少一个可编程处理器,该至少一个可编程处理器可以是专用的或者通用的,该至少一个可编程处理器耦合以接收来自存储系统、至少一个输入装置和至少一个输出装置的数据和指令,并且将指令和数据发送至存储系统、至少一个输入装置和至少一个输出装置。各种这样的实施方式可以附加地或者可替代地包括在具有存储有指令的计算机可读介质中的实施方式,该指令在被一个或者多个计算机执行时使该一个或者多个计算机执行本发明的方法。
此处描述的系统和技术可以实施在计算系统中,该计算系统包括后端组件——例如作为数据服务器,或者包括中间件组件——例如作为应用服务器,或者包括前端组件——例如具有图形用户界面或者Web浏览器的客户端计算机,通过该图形用户界面或者该Web浏览器,用户可以与此处描述的系统和技术的实施方式交互,或者包括这种后端组件、中间件组件或者前端组件的任何组合。系统的组件可以通过任何形式或者介质的数字数据通信——例如通信网络——互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
已经描述了许多实施例。尽管如此,也要理解,在不脱离本发明的精神和范围的情况下,可做出各种修改。另外,附图中描绘的逻辑流不要求只有所示的特定次序或者顺序次序才能达到期望的结果。另外,可以提供其他步骤,或者步骤可以从所描述的流程被去除,并且其他组件可以被添加到或者从所描述的系统中去除。因此,其他实施例在权利要求的范围内。