寫了很多 OS X 和 iOS 相關的產品和技術,很少涉及 Android 的內容,其實 iOS 和 Android 分別源于 OS X 和 Linux 架構,而 OS X 和 Linux 的老祖宗又都是 Unix,打了半天,斗了許久,說開了都是一家人。iOS 與 Android 在發展的過程中也常常相互借鑒和融合,用戶則獲得了越來越好的用戶體驗。
Android 領域同樣有很多好的技術和創意,有些功能甚至是 iOS 不具備的,比如我們今天要談到的「應用內搜索」。
應用內搜索其實就是移動互聯網搜索,在談移動互聯網搜索之前,我們看看 PC 互聯網時代的搜索是怎么干的。1991年8月,大牛蒂姆·伯納斯-李在 NeXTSTEP 操作系統上創建出了第一個網頁瀏覽器和網頁服務器,那一年,你豆蔻年華,我風華正茂,互聯網方興未艾,卻在蒂姆的瀏覽器上開啟了征服世界的第一步。互聯網在90年代末和21世紀初迅速席卷全球,人們在互聯網上創建出了數以億計的網頁和超鏈接。但是僅僅有網頁和超鏈是不夠的,人們需要在浩如煙海的信息中尋找自己需要的內容,于是互聯網搜索和 Page Rank 應運而生。
Google 之前,曾經出現了很多通用或專業領域的搜索引擎,但是最終他們都敗給了 Google,因為這些引擎沒有解決「按照搜索結果的重要性和相關性排序」的關鍵問題。Google 成功了,因為有互聯網搜索的金鑰匙 Page Rank。Page Rank 又叫網頁級別,是一種搜索引擎根據網頁之間相互超鏈接引用的權重來計算網頁重要性和相關度的算法,由 Google 的兩位創始人發明。Page Rank 通過網絡浩瀚的超鏈接關系來確定一個網頁的等級,Google 把 A 頁面中指向 B 頁面的鏈接解釋為 A 頁面為 B 頁面投票,然后根據投票來源和投票目標的等級來計算新的等級。
可以這樣理解,如果你認為《MacTalk·人生元編程》是一本靠譜的書,那么書中提到的王小波的作品、吳軍的作品、馮唐的作品、Linus 的作品,大體上也不會差到哪去,當你去讀這些作品時,又會發現更多好的作品,這就是一種生活中的 Page Rank。當然,永遠會存在一些例外,比如我的一位讀者,讀了一年多的 MacTalk,沒有買《MacTalk·人生元編程》,而是直接買了一臺 Mac,然后跑過來問我,為神馬在 IE 上可以流暢的訪問草榴社區,而 Safari 不行。這條神奇的PageRank 路徑是:MacTalk —> Mac —> Safari —> 草榴社區。對于這種奇葩的路徑,海量的數據樣本可以將其稀釋掉,所以整體上來講,Google 搜索結果的排名還是非常精準的,而且沒有競價排名。
到了移動互聯網時代,這一切都行不通了,因為我們到了另一個江湖。在這個江湖里,瀏覽器只是和上百萬 App 平級的一個應用,它不再握有互聯網入口的唯一金鑰匙。瀏覽器從帶頭大哥變成了初入江湖的小球,原來的青龍偃月刀變成了小木棍,大家都在拄著木棍摸著石頭過河。理論上,每一個 App 都是互聯網的入口!在新的江湖里,所有的 App 都在肆意成長,數據繼續以幾何量級不管不顧的增加,每個 App 都形成了自己的王國,你想要搜索數據,可以,但必須在這個國度里檢索。
每個 App 都形成了當年互聯網誕生時候的「孤島網站」,你想檢索「多看閱讀」里書籍,那么必須打開「多看閱讀」App,如果你想查找「知乎」的問答,那么必須打開「知乎」 App。所有的應用都是封閉的,但搜索的需求永遠存在,我們期待在一個統一的入口去搜索,當找到一本書的時候,直接進入多看或 Kindle 去閱讀。
目前 Apple 在這個領域還無所作為,那么 Google 會不會再次拿到移動互聯網搜索的金鑰匙呢?我們看看 Google 做了什么。2013 年 12 月,Google 發布了 App Indexing,當你的應用接入了 App Indexing 時,在手機上的 Chrome 里使用 Google 搜索網頁時,如果檢索到和你的產品相關的內容,就可以看到「Open In App」按鈕,點擊可以跳轉到對應應用的內容頁面。App Indexing 雖然已經可以進行移動互聯網搜索了,但是這種做法依然延續了 PC 時代的思路,試圖通過 Web 把 App 鏈接起來。對于沒有任何網頁內容的 App 怎么處理呢?目前還沒有答案。
其他廠商,例如 Quixey、Facebook、百度和360等都做了類似的嘗試,但是在這個領域走的最深遠的,或者實際可用的「應用內搜索」,是豌豆莢。
在我的 T1手機上打開豌豆莢,在搜索框輸入「池建強」,可以直接檢索到我的書《MacTalk·人生元編程》,點擊打開,選擇「多看」應用,然后就可以在多看里閱讀這本書了。
在搜索框輸入「繡春刀」,可以看到更多選項,包括電影、特輯、壁紙、推薦應用等。點擊播放,系統會提示你選擇播放來源,優酷、騰訊視頻還是土豆。選擇了之后就可以直接打開相關應用播放了。
另外,豌豆莢根據內容的相關度和優先級對搜素結果進行了排序處理。在搜索框輸入「星際穿越」,搜索結果會先出現購票,之后是壁紙等相關內容。搜索的是已經下線的電影,才會出現視頻條目。
搜索過程中,如果用戶沒有安裝對應搜索結果的應用,系統會提示用戶安裝。
這是真正的應用內搜索,和傳統的 PC 時代互聯網搜索半毛錢關系都沒有。
為了更好的了解「應用內搜索」技術,我又去挖了一下「豌豆莢」。最初從創新工場知道了這個公司,那時它還是一個比較純粹的 App 分發渠道和市場。到了2013年,豌豆莢已經開始涉足「應用內搜索」了。他們在2013年9月正式推出了「視頻搜索」功能,用戶在豌豆莢搜索到的視頻可以直接調用手機上各視頻應用播放,是全球首個將「應用內搜索」落地的產品。2014年1月,豌豆莢發布了「移動內容搜索」戰略,將「應用內搜索」擴展到視頻、電子書、主題、電影票等多個內容類別。
到了今年3月份,豌豆莢正式發布了「應用內搜索技術協議」,開始制定自己的標準,同時兼容 Google 的 App Indexing 協議和 Quixey 的 AppURL。豌豆莢的協議提供了一整套開放的應用內內容檢索、收錄和調用的標準,開發者通過描述應用內的內容、向豌豆莢提交內容信息以及應用支持外部調用即可完成接入。
具體來說,一個應用想要接入豌豆莢的「應用內搜索」,需要完成以下步驟:
第一步,讓自己的 App 支持外部調用。豌豆莢使用 AppURL 指向可以在應用中展現的資源,比如優酷的視頻播放可以用 youku://play/video/12345 來表示,多看的電子書描述頁可以用 duokan://detail/ebook/22345。點擊即可跳轉到相關 App 的相關界面。
第二步,描述 App 的內容。豌豆莢使用微數據(Microdata)來描述應用中的每個項目,微數據是 Google、Bing 和 Yahoo 都支持的結構化數據標注方案,符合 HTML5 的標準,同時也可以用 XML 來表示。一本電子書可以通過微數據的 itemtype(類型)和 itemprop(屬性)的嵌套進行完整的描述,例如書名、作者、簡介、出版日期等等,具體的細節在豌豆莢的開發者中心( http://developer.wandoujia.com/search )有詳盡的描述。
第三部,開發者提交自己的 AppURL 和 App 內容信息,豌豆莢根據開發者提交的內容分門別類建立索引,最終實現應用內快速檢索。
了解了這些,我們就明確了這么幾個問題:
1、一個獨立的 App 即使沒有對應的 Web 頁面,一樣能夠進行應用內搜索
2、開發者可以選擇接入和拒絕應用內搜索,類似互聯網的 Robots 協議
3、應用內搜索實際上是去豌豆莢的服務器端搜索,并把搜索結果返回到終端,并不是聽起來的在「應用內搜索」
拋開商業模式不談,豌豆莢的協議發布之后,他們已經在移動互聯網搜索里有意無意的開始嘗試 PC 時代互聯網的 Google 的角色。但要想做的更為出色,豌豆莢還需要更大的創新和實踐,比如接入的便捷性,搜索的速度,App 的規模,以及對非結構化數據的處理。
無論如何,豌豆莢已經在「應用內搜索」領域邁出了第一步,它讓用戶在茫茫的移動浪潮中迅速準確的找到自己需要的內容,然后順暢安全的進行內容消費。相信「應用內搜索」會為移動互聯網時代譜寫出新的搜索篇章。
說完了 Android,再簡單說說 iOS。其實蘋果在 OS X 上的「應用內搜索」已經做的非常出色了,基于 Spotlight 技術,你可以快速查找和定位任何文件、資料和程序,無論是結構化還是非結構化。但是這個功能并沒有完全移植到 iOS 上。
在 iOS 設備的任一屏幕中單指下滑,就可以使用 iOS 的 Spotlight 功能。你可以對原生應用進行「應用內檢索」,例如日歷、郵件、提醒事項、備忘錄等等,這些是本地化檢索,iOS 并沒有索引其他 App 的應用內容,也沒有提供接入方式和標準。在 iOS 8 里還可以可以對地圖、維基百科、iTunes Store、App Store和 iBooks Store 等內容進行線上檢索,很可惜的是,目前這些線上搜索功能目前還沒有對國內用戶開放。
可以看出,目前 iOS 上的 Spotlight 都是在索引自家的東西,但是,App Store 作為最大的移動 App 分發渠道,我相信他們一定會做面向所有 App 的「應用內搜索」。為什么現在沒做,可能是因為安全因素,也可能是標準問題,也可能只是在等一個合適的機會罷了,比如 iOS 9……