iOS9 App Search編程(1)- 搜索基礎(chǔ)

iOS9新特性:App搜索編程

這里基本按照官方文檔, 但是沒有百分百一致, 夾帶了私貨. 下面是一個總的結(jié)構(gòu)圖, 勾勒了一下這個技術(shù)的全貌.

官方文檔App Search Programming Guide

App Search 總圖

搜索基礎(chǔ)

搜索驅(qū)動用戶參與

蘋果在iOS 9中新造了一個很牛的特性, 就是App Search, 為應(yīng)用提供了暴露內(nèi)容的更多機會, 也增加了操作系統(tǒng)對應(yīng)用本身的控制力. 有了App Search, iOS操作系統(tǒng)變得更像瀏覽器+搜索引擎, 應(yīng)用變得更像一個網(wǎng)站.

  • 不需要打開應(yīng)用, 甚至不需要安裝應(yīng)用就可以讓用戶見到應(yīng)用內(nèi)部的內(nèi)容.
  • 在Spotlight和Safari搜索的結(jié)果里展示應(yīng)用內(nèi)容, 讓Siri,Reminder使用應(yīng)用內(nèi)容.


    Spotlight 搜索
    Spotlight 搜索
Safari 搜索
Safari 搜索

利用兩類索引, 保護(hù)用戶隱私

保護(hù)用戶隱私是iOS9的一項根基功能,為了在提供良好搜索體驗的同時,也保護(hù)用戶隱私, iOS9提供了以下兩種索引:

  • 存儲在客戶端設(shè)備上的私有索引數(shù)據(jù)
    設(shè)備端的私有索引不會上傳到蘋果服務(wù)器, 也不會在不同的設(shè)備之間進(jìn)行同步. 只有在創(chuàng)建索引的設(shè)備上可以搜索到.這種不會擴散的索引,可以有效的幫助用戶保護(hù)隱私.
  • 蘋果服務(wù)器端索引
    服務(wù)端索引用來存儲可以公開的的數(shù)據(jù), 通過你的網(wǎng)站標(biāo)記提供.

組成搜索的幾種技術(shù)

蘋果在app搜索功能上招數(shù)并不單一,打出了組合拳,可以應(yīng)付多重情況. 在動手開發(fā)之前, 需要先動腦筋想一想, 內(nèi)容存儲在哪兒,是客戶端還是網(wǎng)站;誰可以訪問,是只有我自己, 還是網(wǎng)友們都可以, 然后再選擇合適的接口和技術(shù).
iOS9中用來進(jìn)行內(nèi)容索引的接口有:

  • NSUserActivity類是iOS8用來實現(xiàn)handoff的, iOS9中提供的新方法幫助你索引用戶活動, 導(dǎo)航點. 它即支持私有內(nèi)容, 也支持功能內(nèi)容.
  • Core Spotlight框架:主攻設(shè)備端,用來在設(shè)備上建立索引, 只支持私有索引.
  • Web標(biāo)記:主攻服務(wù)端, 讓相關(guān)的web內(nèi)容也可以被搜索.
  • Universal Links. 這是iOS9中用來代替自定義URL schemes的技術(shù). 如果用戶安裝了app, 可以直接打開app, 如果沒有安裝, 可以打開一個網(wǎng)站.
  • Smart App Banners. 用在網(wǎng)站上, 用戶在瀏覽器里點擊之后, 如果你安裝了app, 會打開app, 如果沒有, 會到app Store打開App.
  • Handoff. 可以實現(xiàn)在mac上點一個鏈接, 然后在iPhone上打開對應(yīng)的App.

影響搜索結(jié)果排名的幾種因素

app搜索的結(jié)果會有排行榜, 決定排名的因素如下:

  • 用戶查看你的內(nèi)容的頻率(通過捕獲NSUserActivity來確定)
  • 查看你的內(nèi)容的用戶的數(shù)量
  • 對于標(biāo)記web內(nèi)容, URL的受歡迎度, 結(jié)構(gòu)化數(shù)據(jù)的數(shù)量.
    為了提高排名, 你可以按下面的方法:
  • 創(chuàng)建擁有吸引力內(nèi)容的app.
  • 通過使用前面提到的api, 提高搜索結(jié)果的相關(guān)度.
  • 只對用戶最可能感興趣的內(nèi)容建立索引.
  • 更新索引保證新鮮
  • 在索引中提供高度相關(guān), 豐富的信息.
  • 縮短點擊搜索結(jié)果到應(yīng)用展示內(nèi)容這個流程之間的速度.

實現(xiàn)示例

搜索實現(xiàn)的方式取決于app的使用模式和用戶體驗. 所以一下問題需要思考:

  • 有沒有一個包含了app內(nèi)容的網(wǎng)站?
  • app中是否包含特定用戶的, 或者用戶生成的數(shù)據(jù)?
  • app是否包含用戶重復(fù)訪問的內(nèi)容?
    下面舉例幾種典型的應(yīng)用如何使用搜索技術(shù):

社交網(wǎng)絡(luò)

社交app的用戶, 喜歡分享, 也有一些私有數(shù)據(jù)需要保護(hù).
所以一個社交app的API使用可能如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch來標(biāo)記可以公開搜索的內(nèi)容和隱私的內(nèi)容.
  • Core Spotlight:
    用來索引在設(shè)備上的不是特別重要以及隱私的數(shù)據(jù).
  • Web markup:
    在網(wǎng)站上, 增加deep links和元數(shù)據(jù), 讓公開的個人信息, 網(wǎng)頁, 群組來豐富搜索結(jié)果. 使用universal links讓用戶能夠點擊網(wǎng)站鏈接打開app.

新聞

典型的新聞app幫助用戶按照主題來訪問內(nèi)容. 用戶先瀏覽新聞標(biāo)題, 然后再細(xì)看感興趣的新聞詳情. app中大多數(shù)的信息是公開的, 但是用戶希望他們自己的瀏覽記錄收到保護(hù). API的使用如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch來標(biāo)記導(dǎo)航點. 比如”時事”,”體育”, 用戶點擊搜索結(jié)果后, 可以直接進(jìn)入”時事”,”體育”欄目. 可以索引用戶最感興趣的欄目. 可以使用expirationDate標(biāo)記有些新聞用戶看完多久之后就不再出現(xiàn)在搜索里.
  • Core Spotlight:
    用來索引最新的新聞, 趨勢, 相關(guān)文章, 標(biāo)題; 索引用戶標(biāo)記為喜歡或者稍后再度的新聞; 從索引里刪除過期的新聞;
  • Web markup:
    在網(wǎng)站上, 增加deep links和元數(shù)據(jù),圖片什么的, 提供豐富的信息. 使用universal links讓用戶能夠點擊網(wǎng)站鏈接打開app.

售票

一個售票app需要便于用戶查找即將發(fā)生的事件(比如某某演唱會要開了), 便于買票, 能夠幫助每個用戶跟蹤自己的發(fā)票和即將發(fā)生的事件(比如我訂的電影票馬上要開場了). API的使用如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch來標(biāo)記場館, 樂隊等的活動.
  • Core Spotlight:
    索引發(fā)票, 喜歡的樂隊, 附近地點的事件, 清理過期的索引;
  • Web markup:
    在網(wǎng)站上, 增加deep links和元數(shù)據(jù),圖片,價格什么的, 提供豐富的信息. 使用universal links讓用戶能夠點擊網(wǎng)站鏈接打開app.

旅行

需求類似于賣票的app. API的使用如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch來標(biāo)看過的旅館, 經(jīng)典, 酒店, 航班, 路線.
  • Core Spotlight:
    索引預(yù)訂, 附近的經(jīng)典, 收藏的酒店,景點等;
  • Web markup:
    在網(wǎng)站上, 增加deep links和元數(shù)據(jù),圖片,價格, 地址什么的, 提供豐富的信息. 使用universal links讓用戶能夠點擊網(wǎng)站鏈接打開app.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容