多关键字模糊匹配的终端适配算法
- 格式:doc
- 大小:224.30 KB
- 文档页数:8
多关键字模糊匹配的终端适配算法
应用软件开发
功能需求规格书
版本号 2.0.0
修订记录
日期 修订版本 修改章节 修改描述 作者
2014-08-01 1.0
新建 袁勇
2014-10-09
2.0 补充 袁勇
目 录
1 前言 3
1.1 编写目的 ................................................................................................................................................... 3
1.2 文档范围说明................................................................................................... 错误!未定义书签。
1.3 文档适用读者..................................................................................................................................... 3
1.4 术语、定义及缩略语 ......................................................................................................................... 3
2 终端适配模糊算法 ........................................................................................................................................ 4
2.1 终端适配模糊算法简介 ........................................................................................................................... 4
1 前言
1.1 编写目的
本文档的目的主要是介绍多关键字模糊匹配的终端适配算法的流程和处理逻辑。
1.2 文档适用读者
文档适用于对开发测试人员,和终端适配相关的专业人士。
1.3 术语、定义及缩略语
缩写 英文名称 中文描述
FRS Function Requirement Specification 功能规格说明书
FTP File Transfer Protocol 文件传输协议
HTTP Hypertext Transfer Protocol 超文本传输协议
IMEI International Mobile Equipment Identity 国际移动设备标识
OS Operating System 操作系统
SFTP Secure File Transfer Protocol 安全文件传输协议
SNMP Simple Network Management Protocol 简单网络管理协议
WAP Wireless Access Protocol 无线接入协议
WAPGW WAP Gateway WAP网关
URL Uniform Resource Locator 统一资源定位器
UA User Agent 一个特殊字符串头,使得服务器能够识别客户使用终端名称、操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎等信息
2 终端适配模糊算法
2.1 终端适配模糊算法简介
模糊算法是将需要适配的UA数据(标准UA)以及非标准UA,通过多关键字模糊匹配的过程,关联到标准机型库信息,写入到UA与标准终端ID的映射表信息t_po_ua_terminal_relation,从而得到其各项相关信息,其大致流程如下图:
2.1.1 标准机型库、待适配UA库、未适配UA库和异常UA库
标准机型库t_po_terminal数据结构如下,包含了以下主要的信息:终端ID、英文品牌、中文品牌、别名品牌、展示品牌、机型别名、展示机型、分辨率宽、分辨率高、操作系统、机型别名是否包含字母以及其他属性。
终端ID 英文品牌 中文品牌 别名品牌 展示品牌 机型别名 展示机型 分辨率宽 分辨率高 操作系统 是否包含字母 更多属性
1XX HTC 宏达电子 HTC G10 Desire HD 480 800 Android YES XXX
2XX
HTC 宏达电子 HTC Desire
HD Desire HD 480 800 Android YES XXX
3XX SAMSUNG 三星 SE三星 X208 SGH-X208 240 320 Android YES XXX
其中:终端ID是标示终端信息的唯一字段,展示品牌是指在使用国家和区域中消费者普遍了解和熟悉的品牌,如诺基亚、HTC,展示机型是指机型的标准名称或行货的名称,一个标准机型包含一个或多个机型别名,但在机型信息中,所以的标准机型应该存在一条记录,其机型别名与标准机型一致(这一点需要机型维护人员保证,系统定期校验),机型别名是否包含字母是便于在适配算法中提升准确率而设定的一个参数,由系统自行计算,及判断机型中是否包含A-Za-z的字母及中文汉字;
待适配UA库t_po_erroradapterrecord是指需要进行模糊适配的UA信息;未适配UA库T_PO_notadaptua是指经过每日定时运行的模糊匹配算法处理后无法关联标准终端ID的UA信息;异常UA库t_po_ua_error是指经过人工鉴定,确实无法映射到任何标准终端ID的UA,如*,maui等。
2.1.2 模糊匹配算法前置处理
A、 提取待适配UA表t_po_errorua的数据,并根据UA关联剔除存在未适配UA表T_PO_notadapterua和异常UA表t_po_ua_error中的数据,其中关联时不区分大小写;
B、 检查机型库中机型别名字段是否包含操作系统名称的数据,如机型包含DROID、SYMBian、plam、windows等,这类数据暂时不处理;
C、 每周选定一个时间,将未适配UA表T_PO_notadapterua进行回笼处理,目前设定每周二定期将未适配UA表全量加载到待适配UA表t_po_erroradapterrecord中,并将未适配UA表T_PO_notadapterua清空;(因为随着机型信息的补充和适配算法的优化,可能存在部分未适配UA表的数据能够通过模糊算法映射到标准机型ID)。
D、 将待适配UA表t_po_erroradapterrecord的数据按UA去重后放入到本次处理的一个中间表t_po_lostuseragent_DATE中,包含ua、upp_ua、dtime三个字段,其中dtime默认为插入时间,upp_ua=upper(ua),及将ua转换成大写填充。
2.1.3 UA同时包含品牌和机型的处理逻辑
对于UA同时包含品牌和机型的信息,作为适配的第一层级策略,其可靠性是最高的,而判断“包含”采用的技术手段是采用instr函数(oracle数据库提供的字符串函数,后文所用包含同此)。
A、 当UA同时包含机型库的英文品牌和机型别名,且机型库的英文品牌和机型别名非空,则认为该UA能适配此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为1; C
4XX SONYERICSSON 索尼爱立信 索爱 索尼爱立信 LT22i LT22i 540 960 Android YES XXX
5XX NOKIA 诺基亚 诺基亚 5800 5800XM 240 320 symbian NO XXX B、 当UA同时包含机型库的中文品牌和机型别名,且机型库的中文品牌和机型别名非空,则认为该UA能适配此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为1;
C、 当UA同时包含机型库的别名品牌和机型别名,且机型库的别名品牌和机型别名非空,则认为该UA能适配此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为2;
D、 对于同一个UA映射多个终端ID的情况,根据终端ID对应的机型别名长度最长最先选择,对于长度相同时,根据终端ID的大小从大至小优先判断;
2.1.4 UA仅包含机型的处理逻辑
经过3.1.3的处理后仍未建立映射关系的UA,进行这一轮适配逻辑,即仅包含机型处理。
A、 对于机型别名中包含字母(该字段为YES),且机型别名长度大于等于2位,且UA所包含机型别名的位置的前一位和后一位为特殊字符(即不是大小写字母A-Za-z及数据0-9),如UA:mozilla/5800XM symbian v40 对应机型 诺基亚5800XM,其UA包含机型别名位置的前一位和后一位分别为”/”和” ”,则将该UA能此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为3;
B、 对于机型别名中不包含字母(该字段为NO,及机型为纯数字),且机型别名长度大于等于4位,且展示品牌为’HTC','OPPO','LG','步步高','多普达','华为','摩托罗拉','诺基亚','三星','小米','夏普','魅族'等,且UA所包含机型别名的位置的前一位和后一位为特殊字符(即不是大小写字母A-Za-z及数据0-9),如UA:mozilla/5800 symbian v40 对应机型 诺基亚5800,其UA包含机型别名位置的前一位和后一位分别为”/”和” ”,则将该UA能此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为4;
C、 对于机型别名中不包含字母(该字段为NO,及机型为纯数字),且机型别名长度大于等于4位,且展示品牌不为’HTC','OPPO','LG','步步高','多普达','华为','摩托罗拉','诺基亚','三星','小米','夏普','魅族'等,且UA所包含机型别名的位置的前一位和后一位为特殊字符(即不是大小写字母A-Za-z及数据0-9),则将该UA能此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为5;
D、 对于仍未适配的UA,仅使用UA包含机型别名,且所包含机型别名的位置的前一位和后一位为特殊字符(即不是大小写字母A-Za-z及数据0-9)的条件进行适配,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为6;
E、 以上适配结果的优先级A>B>C,同一优先级中如存在一个UA映射多个终端ID的情况,根据终端ID对应的机型别名长度最长最先选择,对于长度相同时,根据终端ID的大小从大至小优先判断。