iOS9 App Search编程(1)- 搜索基础

iOS9新特性:App搜索编程

这里基本按照官方文档, 但是没有百分百一致, 夹带了私货. 下面是一个总的结构图, 勾勒了一下这个技术的全貌.

官方文档App Search Programming Guide

App Search 总图

搜索基础

搜索驱动用户参与

苹果在iOS 9中新造了一个很牛的特性, 就是App Search, 为应用提供了暴露内容的更多机会, 也增加了操作系统对应用本身的控制力. 有了App Search, iOS操作系统变得更像浏览器+搜索引擎, 应用变得更像一个网站.

  • 不需要打开应用, 甚至不需要安装应用就可以让用户见到应用内部的内容.
  • 在Spotlight和Safari搜索的结果里展示应用内容, 让Siri,Reminder使用应用内容.


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

利用两类索引, 保护用户隐私

保护用户隐私是iOS9的一项根基功能,为了在提供良好搜索体验的同时,也保护用户隐私, iOS9提供了以下两种索引:

  • 存储在客户端设备上的私有索引数据
    设备端的私有索引不会上传到苹果服务器, 也不会在不同的设备之间进行同步. 只有在创建索引的设备上可以搜索到.这种不会扩散的索引,可以有效的帮助用户保护隐私.
  • 苹果服务器端索引
    服务端索引用来存储可以公开的的数据, 通过你的网站标记提供.

组成搜索的几种技术

苹果在app搜索功能上招数并不单一,打出了组合拳,可以应付多重情况. 在动手开发之前, 需要先动脑筋想一想, 内容存储在哪儿,是客户端还是网站;谁可以访问,是只有我自己, 还是网友们都可以, 然后再选择合适的接口和技术.
iOS9中用来进行内容索引的接口有:

  • NSUserActivity类是iOS8用来实现handoff的, iOS9中提供的新方法帮助你索引用户活动, 导航点. 它即支持私有内容, 也支持功能内容.
  • Core Spotlight框架:主攻设备端,用来在设备上建立索引, 只支持私有索引.
  • Web标记:主攻服务端, 让相关的web内容也可以被搜索.
  • Universal Links. 这是iOS9中用来代替自定义URL schemes的技术. 如果用户安装了app, 可以直接打开app, 如果没有安装, 可以打开一个网站.
  • Smart App Banners. 用在网站上, 用户在浏览器里点击之后, 如果你安装了app, 会打开app, 如果没有, 会到app Store打开App.
  • Handoff. 可以实现在mac上点一个链接, 然后在iPhone上打开对应的App.

影响搜索结果排名的几种因素

app搜索的结果会有排行榜, 决定排名的因素如下:

  • 用户查看你的内容的频率(通过捕获NSUserActivity来确定)
  • 查看你的内容的用户的数量
  • 对于标记web内容, URL的受欢迎度, 结构化数据的数量.
    为了提高排名, 你可以按下面的方法:
  • 创建拥有吸引力内容的app.
  • 通过使用前面提到的api, 提高搜索结果的相关度.
  • 只对用户最可能感兴趣的内容建立索引.
  • 更新索引保证新鲜
  • 在索引中提供高度相关, 丰富的信息.
  • 缩短点击搜索结果到应用展示内容这个流程之间的速度.

实现示例

搜索实现的方式取决于app的使用模式和用户体验. 所以一下问题需要思考:

  • 有没有一个包含了app内容的网站?
  • app中是否包含特定用户的, 或者用户生成的数据?
  • app是否包含用户重复访问的内容?
    下面举例几种典型的应用如何使用搜索技术:

社交网络

社交app的用户, 喜欢分享, 也有一些私有数据需要保护.
所以一个社交app的API使用可能如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch来标记可以公开搜索的内容和隐私的内容.
  • Core Spotlight:
    用来索引在设备上的不是特别重要以及隐私的数据.
  • Web markup:
    在网站上, 增加deep links和元数据, 让公开的个人信息, 网页, 群组来丰富搜索结果. 使用universal links让用户能够点击网站链接打开app.

新闻

典型的新闻app帮助用户按照主题来访问内容. 用户先浏览新闻标题, 然后再细看感兴趣的新闻详情. app中大多数的信息是公开的, 但是用户希望他们自己的浏览记录收到保护. API的使用如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch来标记导航点. 比如”时事”,”体育”, 用户点击搜索结果后, 可以直接进入”时事”,”体育”栏目. 可以索引用户最感兴趣的栏目. 可以使用expirationDate标记有些新闻用户看完多久之后就不再出现在搜索里.
  • Core Spotlight:
    用来索引最新的新闻, 趋势, 相关文章, 标题; 索引用户标记为喜欢或者稍后再度的新闻; 从索引里删除过期的新闻;
  • Web markup:
    在网站上, 增加deep links和元数据,图片什么的, 提供丰富的信息. 使用universal links让用户能够点击网站链接打开app.

售票

一个售票app需要便于用户查找即将发生的事件(比如某某演唱会要开了), 便于买票, 能够帮助每个用户跟踪自己的发票和即将发生的事件(比如我订的电影票马上要开场了). API的使用如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch来标记场馆, 乐队等的活动.
  • Core Spotlight:
    索引发票, 喜欢的乐队, 附近地点的事件, 清理过期的索引;
  • Web markup:
    在网站上, 增加deep links和元数据,图片,价格什么的, 提供丰富的信息. 使用universal links让用户能够点击网站链接打开app.

旅行

需求类似于卖票的app. API的使用如下:

  • NSUserActivity:
    使用eligibleForPublicIndexing和eligibleForSearch来标看过的旅馆, 经典, 酒店, 航班, 路线.
  • Core Spotlight:
    索引预订, 附近的经典, 收藏的酒店,景点等;
  • Web markup:
    在网站上, 增加deep links和元数据,图片,价格, 地址什么的, 提供丰富的信息. 使用universal links让用户能够点击网站链接打开app.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容