版权声明:本文由林少彬原创文章,转载请注明出处:
文章原文连接:https://www.qcloud.com/community/article/89html
来源:腾云阁 https://www.qcloud.com/community架构
QQ空间相册的旅游相册,它以照片拍摄时间为主线,还原了旅游行程中的故事,清晰展示了用户行程景点位置及拍摄的美景。景点位置查询做为旅游相册一个重要功能,能够帮助用户找回旅途中的足迹。腾讯内部搜索平台部成立不久便托管了景点POI搜索业务,支持用户景点输入智能提示、国内外景点搜索。
性能
旅游相册POI搜索业务自2013年10月上线后,从最开始的仅支持国内景点搜索到国外景点数据补充,再到针对性地修补景点数据,从数据层面作了大的修补。搜索点击率也随之逐渐提高。时隔数年,再次拾起,但愿能够经过总结整理,达到知识分享、提高的目的。优化
POI搜索智能提示主要用于用户输入景点检索串时,实时进行相关结果快速提示的场景。一方面能够补充提示用户所要输入的位置信息,另外一方面能够引导用户搜索精确化,从而提升景点搜索结果准确度及结果点击率。
针对以上业务特性,POI搜索业务架构有别于其余通用搜索,主要体如今数据补充、离线索引、在线检索三个模块。网站
目前数据分为三个来源:spa
离线索引主要功能包括接收POI原始数据,创建倒排、顺排、属性、等索引,离线打分。基于地图POI数据更新周期较长、同步集中的特色,POI搜索业务采用了按期全量推送加天天增量推送的更新方式。
为支持用户输入景点的实时检索,咱们设计了两套索引结构:前向匹配切词索引、普通分词索引,保证用户检索结果能够前缀命中或分词命中检索串,从而提高用户检索体验。架构设计
为支持行政区名检索,离线索引对每一个POI文档的省、市、区行政区名创建了特殊索引:首先创建行政区名到行政区名字母映射表,查表获得POI对应行政区字母缩写,再经过添加特殊前缀标记的方式,把带特殊前缀的行政区字母标记添加进这篇文档的顺排词表。支持行政区识别检索效果以下:
设计
行政级别权重 > POI类别权重 > 主副点
行政级别权重:国家 > 省 > 市 > 县 > 末级POI
类型权重:旅游景点 > 其余
主副点:主点 > 副点,好比 银科大厦 > 银科大厦停车场,简单比较方法是词长越短越重要htm
带行政区名的检索串识别到行政区后,行政区名做为分类过滤条件结合去行政区后的检索串进行前缀索引检索。效果以下:
排序
无行政区名的检索串直接进行前缀索引检索。效果以下:
获取分词结果后进行分词索引检索。效果以下:
根据业务侧提供的会话级检索词,即用户选中推荐地点时落下的检索串。会话级零结果数占天天会话级检索量接近四分之一
抽样会话级零结果检索串分析以下:
检索串类型 | 示例 |
---|---|
时间+相册主题 | 2005年的我 |
相册主题 | 一個人的旅途 |
地点缺失 | 上海普陀区梅川路步行街 |
输入有误 | 巴黎罗浮宫 |
包括时间+相册主题、相册主题类型的检索串。用户在地点框误输入相册主题,输入与景点搜索无关,检索串格式比较混乱
用户输入带范围描述词的地点,好比:东莞莞城区西城楼附近、哈尔滨松花江江边。有些地点没有索引进来,好比:柳城太平安乐湖、康巴什赛马场
少数输入拼写错误,好比:巴黎罗浮宫
致使零结果的检索串中相册主题类型占了绝大部分;地点缺失问题主要是用户不能肯定景点位置致使;数据缺失问题比例相对较小。
产品侧策略:经过产品侧对用户的输入作引导,帮助用户区分相册描述、景点位置输入框,提高检索串质量。
数据补充策略:针对地点缺失的问题,经过抓取旅游网站著名景点数据补充。
在线处理策略:后续考虑引入QC纠错,解决拼写错误等问题。
引入QC纠错及补充著名景点数据先后,搜索零结果率有所降低,效果以下:
从各种型结果曝光状况看出,非旅游景点、非行政区的结果检索获得的POI数最多;搜索结果总体趋向景点、地址搜索的场景,因为对风景名胜等景点相关的POI数据离线打分权重相对较高,致使其余类型数据召回效果并不理想。
针对特定类型(如机场、火车站、汽车站等)检索需求,离线索引会对这类POI文档创建分类类型特殊索引,在线检索对检索串语法分析时,能够识别出其分类意图及分类类型,转化为分类过滤条件下发。效果以下:
经历了QQ空间相册等业务的高速发展,景点POI搜索应用积累了丰富的应用场景与应用经验,不断提高性能及优化用户体验,足够成熟后已做为“腾讯云搜”产品的能力之一开放给广大的开发者用户。