本文主要是介绍《近匠》豌豆荚李大海:用搜索敲开手机娱乐平台之门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
发表于2014-07-23 20:17| 1016次阅读| 来源CSDN| 2 条评论| 作者Zion
2014年3月,豌豆荚发布了垂直应用搜索的"应用内搜索"技术协议。初步提供了对应用内搜索的检索、收录和调起标准。同一时间,豌豆荚同步上线了“应用内搜索”接入申请入口。应该说搜索是豌豆荚的重要战略之一,而开放接口的一个重要原因在于,在已经培养一段时间的用户习惯后,豌豆荚的深度用户已不满足于现有应用的内容。同时,部分通过豌豆荚分发的应用已经开始与豌豆荚接触希望成为应用内搜索的来源之一。
应用内搜索的意义在于,像当年的Web网站一样,试图将移动互联网打通,使手机应用之间的关系,不再像现在一样是一个个的信息孤岛,而是可以通过搜索将信息内容串联起来。此前,Google在Android 4.4中推出的App Indexing便试图做到这一点,即将应用内容URL化,方便被搜索引擎抓取。而作为一家应用平台,着力打造应用内搜索,除了能从侧面提高被调起应用的下载量,有利于增强豌豆荚分发优势外,还可以打破各家内容的瓶颈,将视频、 电子书等内容在搜索内进行聚合,探索移动搜索的同时去发现渠道市场的新形式。
那么,豌豆荚在应用内搜索方面都做了哪些实践?应用内搜索技术在国内目前处于哪个阶段?又有哪些机遇与挑战留给开发者?针对这些问题,CSDN近日对豌豆荚搜索平台技术负责人李大海进行了专访。
CSDN:请简单介绍一下你的工作经历。
李大海:我2006年毕业于北京大学基础数学系,之后加入了谷歌中国,在谷歌待了四年多以后,跟当时的谷歌北京工程副院长刘俊一起创业做云云网。去年 8 月来到豌豆荚,负责搜索业务方面的事情。目前,我的主要工作是跟着搜索平台团队一起为公司的搜索产品提供技术支持。
CSDN:能否介绍一下豌豆荚的搜索技术团队?
李大海:豌豆荚早在2012年就开始做应用搜索,团队是按照典型的搜索引擎架构来分工的。工作内容包括爬虫、后台的数据处理、检索、排序,以及对用户意图的理解等。当然,随着公司业务的变化,我们的团队也一直在变。随着业务功能的增加,团队的规模也在不断壮大。
CSDN:今年你们的工作取得了哪些成绩?
李大海:今年是我们从应用搜索向手机娱乐搜索转变的过程,这个过程有很多阶段性成果,比如我们的电子书、视频以及壁纸搜索,在线上服务了很多的用户。这些业务的变化促使我们在人员的规模和分配上也作出了一些调整。
CSDN:豌豆荚现在所做的应用内搜索是一个什么样的体验?
李大海:我们是把App的内容做了一个索引,给用户提供一个完全直达的体验。以电子书为例,用户通过搜索找到自己想看的书,豌豆荚可以直接把用户带到相应的 App 中去(比如《多酷书城》),你可以免费试读也可以下载。而这些 App 则变得更像传统互联网的网站,不再是信息孤岛。
CSDN:现在一些巨头也在向应用内搜索方向进行尝试,请问你怎样看待这种现象?在你看来,应用内搜索业务在竞争中得胜的关键是什么?
李大海:应用内搜索是一个非常新的领域,从产品形态上来看,它一定是基于手机使用场景发展起来的产品。豌豆荚一直专注于移动使用场景,为用户打造简单有爱的手机应用,我们也是第一个把应用内搜索产品化的公司。我们看到有越来越多的公司认可这件事,并且加入到这个领域当中,这是非常令人高兴的现象。说起应用内搜索的关键,我认为以下三点比较重要:全面、准确、情景化。尤其是全面、准确,这是用户愿不愿意用你的搜索产品的关键。另外,数据的积累客观上也能形成竞争的壁垒。豌豆荚在移动领域积累了4年的数据,这正是我们的优势。
CSDN:这样看来,豌豆荚已不再是一个单纯的应用平台?
李大海:是的。其实我们最终想做的事情是一个手机上的综合的内容搜索,把手机娱乐场景下的所有内容全面建立起来。当然,这需要一些时间,让用户对产品的认知慢慢改变。
CSDN:前不久,豌豆荚与《猫眼电影》合作,提供基于场景的搜索内容反馈。在你看来,理想的场景推送是一种怎样的体验?
李大海:我认为,理想的场景推送就是准确把握住用户需求。在搜索的场景下,我们知道用户需求后,再根据其他一些条件去判断,成功率和准确率会高很多。举个例子,一个智能的生活类搜索引擎,在用户晚上十点,以“川菜”为关键词进行搜索时,应当结合用户所处的位置,为用户提供附近能吃宵夜的川菜馆,而不是那些虽然流行但已经关门了的馆子。这就是所谓的“智能”,它不是虚无炫酷的,而是对用户需求的的准确判断。豌豆荚最近引入了电影票门类,在搜索最近热映的电影时,比如《后会无期》,用户可以直接点击第一条搜索结果开始选座购票,这样,用户会被直接带到猫眼电影 App 中,整个流程是无缝、流畅的。
CSDN:应用内搜索用到了一个关键技术,即Deeplink,能否简单介绍一下这一技术?
李大海:Deeplink在互联网发展的早年就提出来了,当时的概念是与首页对立的,“藏在首页之下的页面”,再后来,搜索引擎行业把这个概念跟爬虫容易抓取到的内容相对起来。我们认为,还有更多的互联网内容是藏在这些页面之后没被人看到的,也就是说,我们看到的信息只是冰山一角,更多的数据实际上是藏在冰山的下面的。现在,Deeplink更具体的是指App里面的内容。我们知道,App是组成移动互联网的一个个细胞,它对应着以前的网站。但它与网站不同的是,App的内容是孤立的,没有超链接的技术规范。所以,想知道App内有哪些好的内容从 App外部是不太容易做到的,这些内容隐藏得很深。针对这一情况,人们开始找出一些技术方案来解决这一问题,这些技术解决方案统称为Deeplink。
CSDN:能否举一些例子,具体讲讲Deeplink的实现原理?
李大海:现在已经有很多公司在定义自己的Deep Link规范,比如豌豆荚的应用内搜索技术协议(http://developer.wandoujia.com/search),Google的App Indexing(https://developers.google.com/app-indexing),Quixey的AppURL(http://appurl.org)和Facebook的App Links(http://applinks.org)等。
这些协议都有一个共同特点,通过某种方式代替URL来描述资源,为了与普通的(Web)URL对应,我们姑且称之为App URL,再使用第三方工具把App URL解释为Android系统或其它移动操作系统的原生App调起方式,打开App内对应的资源。这些协议要变得可用,都需要App首先能支持系统原生的外部调起方式。在Android上,这就是使用intent-filter来响应特定的intent。
拿豌豆荚的应用内搜索技术协议来说,我们使用Microdata+扩展的Sitemap来结构化地描述内容资源(这里的内容资源有比如视频和电子书等),在每个资源的描述文件中使用标签xhtml:link来描述该资源在Android上对应的打开方式,当这个资源在搜索结果中被点击时,标签xhtml:link中的内容会被豌豆荚翻译成相应的intent,让Android系统调用合适的Action。
下面是一个具体的例子:
这个视频的App URL就是“example://play/movie/xxx”,在调用的时候,豌豆荚会向系统构造一个intent,这个intent的action是"android.intent.action.VIEW",category是 "android.intent.category.DEFAULT",scheme是“example”,host是“play”等。这样,只要App在manifest文件中通过intent-filter注册了这样的intent响应能力,就能够顺利调起这个视频,进而开始播放了。
CSDN:这个过程当中会不会引起一些安全性的问题?
李大海:首先,从豌豆荚下载的应用我们会进行严格的认证,我们的应用内搜索本身也是在这些验证、审核过的应用的基础上把里面的内容提供给用户。用户能够搜索到这些内容,就表明这个内容本身的安全性是有保证的。第二, 用户在点击这个内容之后,会通过刚才提到的技术直接调起对应的App,打开相应的资源。到这里豌豆荚的工作就结束了,接着就是由对应App接手这个工作继续为用户服务,豌豆荚不能也不会获取和监听用户的使用信息。
CSDN:这是不是说,你们要去与开发者沟通,取得他们的支持,才能真正实现Deep link所预想的想法?
李大海:是这样的。真正支持Deeplink的开发者还非常少,所以我们为了实现预想的用户体验效果,必须跟开发者合作,跟他们解释需要做的事情和可以获得的好处,这是很难绕开的事情。目前,我们已经与超过50家合作伙伴达成了合作。最近也在准备上线自动接入内容的新版开发者中心,提升接入效率。
CSDN:作为豌豆荚搜索平台的技术负责人,你的常用开发工具是什么?
李大海:我研究生毕业前就是一个Liunx爱好者,是北京大学Linux俱乐部的常任会员。进入谷歌之后,也一直在Linux平台下做开发,日常使用的操作系统是Ubuntu,平时使用Vim进行代码编写,开发语言主要是用C++和Java,偶尔用一下Python,对Go语言也很感兴趣。
CSDN:在你的技术实践当中,有哪些建议与心得可以给到开发者?
李大海:现在是一个开源的时代,我建议开发者多了解开源界的动向,对常用的开源框架和工具,以及一些现成的存储系统有所了解,这样,在需要快速实现一个原型系统的时候能够以很低的时间和成本完成。比如Java和 Spring框架、Hadoop、Hbase、Hive、Storm、Spark等。另外,在移动互联网时代,我们经常需要处理海量数据。我建议开发者,在开发的时候,一开始就要想好怎样能把代码写得对分布式比较友好。比如选用数据库解决方案的时候虽然一开始量可能很小,但还是要想清楚到底是MySQL更合适业务需要,还是用HBase这样的Non-SQL数据库就足够了。如果采用MySQL,以后数据量大了可能会怎么运营?诸如此类。
【《近匠》上海庆科:智能家居背后的连接和交互方案提供商】《近匠》第47期:今年国内智能硬件团队不断涌现,而专注于智能家居方向的团队数量多。同时,一些如海尔、美的这样的老品牌也开始走向智能化。在这些智能家居背后,有着一个重要的云方案提供商,那就是上海庆科。
【《近匠》图灵机器人:App和移动硬件的智慧大脑】《近匠》第46期,图灵机器人是为开发者提供智能语义处理能力(包括语义理解,智能问答,知识库对接等)的服务。目前已经积累近百亿条语料库和GB级别基础数据,本期专访联合创始人韦克礼,听他详解“智慧大脑”。
【《近匠》Blueware何晓阳,不做中国的New Relic】《近匠》第45期,APM指“端到端应用性能管理”,可以对应用的传输链进行统一、实时深入分析。目前这一领域最广为人知的公司是美国的New Relic。作为一家中国APM提供商,Blueware希望APM可以为更多国内开发者所用。
这篇关于《近匠》豌豆荚李大海:用搜索敲开手机娱乐平台之门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!