Skip to main content

查询

本文旨在说明在问题列表以及问题详情等页面中,查询功能的使用技巧。

1. 使用简介

展开与收起

打页面后,默认是收起状态,可以点击展开,显示已添加的所有筛选字段。

查询

查询

添加字段

默认显示当前页面支持的所有筛选字段,用户可以通过【添加字段】按钮,自由调整期望显示的字段。

温馨提示

用户调整展示的筛选项后,Bugly管理台会在浏览器本地保存用户的设置。在没有清除缓存的情况下,下次进入相同页面,展示的是上次设置的字段。

查询

查询

调整筛选字段后,查询并不立即生效,需要手动点击【查询】按钮,才会真正执行查询操作。

查询

保存记录

我们可以通过【保存记录】操作,将经常使用的查询组合保存起来,以便下次使用。这些查询组合,不需要再使用时,可以删除。

查询 查询

2. 筛选字段类型

Bugly支持的筛选项可以分为这些类型:时间范围,版本类型,数值类型,字符串类型,字符串数组类型,可枚举类型,特殊类型。不同类型支持不同的搜索模式,大部分搜索模式支持输入多个关键字。以下是这些筛选类型的详细说明。

时间范围

时间范围支持[5分钟,小时,天,周,月]等5种聚合粒度。

其中,5分钟和小时聚合只支持最近48小时的数据,包含自定义,最近1小时,今天,昨天三种模式。

而天,周,月这三种聚合粒度,支持自定义,最近7天,最近30天,最近90天等模式。

查询

版本类型

支持[是,不是,大于,大于等于,小于,小于等于,区间,匹配,不匹配,为空,不为空,开头匹配,开头不匹配,结尾匹配,结尾不匹配,正则表达]这些搜索模式。

版本类型的字段,本质存储的是一个字符串,同时符合版本规范。所以,版本类型的筛选项同时具备了数值类型和字符串类型筛选项的所有搜索模式。

版本类型的字段包含,APP版本,SDK版本,系统版本等筛选字段。

版本比较
  1. Bugly按业界推荐的版本格式来理解版本,主版本号.次版本号.修订号.构建号。
  2. Bugly会对版本字段进行解析,规范化为A.B.C.D四部分,从左到右解析,不足的部分补充0 。
  3. 解析出规范化的版本后,根据优先级(A > B > C > D),比较两个版本的大小。
  4. 根据这个比较规则 '4.5.2.1' > '4.5.2.0' > '4.5.1.99' > '4.4.2.100' 。
  5. 系统版本也采用同样的规则,'Android 7.1.2,level 25' > 'Android 6.0.1,level 23' > 'Android 5.1,level 22' > 'Android 5.0.2,level 21'

以下是详细的比较规则:

查询

搜索模式意义
字符串的精确比较,支持输入多个关键字,这些关键字是OR关系,表示字段的值等于输入关键字中的任意一个时,条件满足。
不是字符串的精确比较,支持输入多个关键字,这些关键字是AND关系,表示字段的值不等于输入关键字中的任意一个时,条件满足。
大于/大于等于版本之间的比较,只允许输入一个关键字,表示字段的值「大于/大于等于」输入关键字表示的版本时,条件满足。
小于/小于等于版本之间的比较,只允许输入一个关键字,表示字段的值「小于/小于等于」输入关键字表示的版本时,条件满足。
区间版本之间的比较,需要输入两个关键字,例如输入的关键字分别是A和B,A<=x<=B,条件满足。
为空表示字段是一个空串时/或者相应字段没有上报时,条件满足。Bugly平台不区分无值和空串的情况。
不为空表示字段是一个非空串时,即字符串的长度大于0时,条件满足。
匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是OR关系,表示只要字段的值包含输入关键字中的任意一个时,条件满足。
不匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是AND关系,表示字段的值不包含输入关键字中的任意一个时,条件满足。
开头匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是OR关系,表示字段的值以输入关键字中的任意一个开头时,条件满足。
开头不匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是AND关系,表示字段的值不以输入关键中的任意一个开头时,条件满足。
结尾匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是OR关系,表示字段的值以输入关键字中的任意一个结尾时,条件满足。
结尾不匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是AND关系,表示字段的值不以输入关键字的任意一个结尾时,条件满足。

以下通过「APP版本」的几个示例来演示版本类型的搜索。

搜索目的操作符输入关键字说明
搜索大于'4.5.2'版本的个例大于'4.5.2'版本为'4.5.2.1'的个例满足条件,但是版本为'4.5.2.0'的个例不满足条件。
搜索'4.5.2' 和 '4.5.3' 版本的所有子版本的个例开头匹配'4.5.2.', '4.5.3.'如果不加后面的'.',会导致'4.5.20.xx' 等类型的版本也包含在内。
搜索hotpatch版本为499的所有版本的个例结尾匹配'(hotpatch:499)'APP版本包含主版本号和hotpatch版本号两部分,正常的表示如示:'4.5.3.1(hotpatch:499)',其中'4.5.3.1'为主版本号。

数值类型

支持[等于,不等于,大于,大于等于,小于,小于等于,区间]这些搜索模式。

数值类型的筛选项,该字段存储的值是数值类型,可能是整数类型,也可能是浮点类型。

数值类型的筛选项包含,使用时长,可用内存,卡顿耗时等字段。

搜索模式意义
等于支持输入多个关键字,这些关键字是OR关系,表示字段的值等于输入关键字中的任意一个时,条件满足。
不等于支持输入多个关键字,这些关键字是AND关系,表示字段的值不等于输入关键字中的任意一个时,条件满足。
大于只支持输入一个关键字,表示字段的值大于输入关键字时,条件满足。
大于等于只支持输入一个关键字,表示字段的值大于或者等于输入关键字时,条件满足。
小于只支持输入一个关键字,表示字段的值小于输入关键字时,条件满足。
小于等于只支持输入一个关键字,表示字段的值小于或者等于输入关键字时,条件满足。
区间支持输入两个关键字,例如left和right,表示字段的值等于两者之一,或者处于两者之间时,条件满足。

以下通过「使用时长」的几个示例来演示数值类型的搜索。

搜索目的操作符输入关键字说明
搜索「使用时长」大于30秒的个例大于30使用时长的单位是秒,所以输入30即表示30秒。
搜索「使用时长」在30分钟到1小时之间的个例区间1800, 3600使用时长的单位是秒,30分钟即1800秒,1小时即3600秒。

以下再通过自定义维度的n1字段来演示数值类型的搜索,假定业务使用n1来表示机型的划档,分为5分档,从低到高为1到5 。

搜索目的操作符输入关键字说明
搜索1档和2档机型上报的个例1,2表示搜索n1 = 1 or n1 = 2 的个例
搜索1档和3档之外的其他机型的个例不是1, 3表示搜索 n1 != 1 and n1 != 3的个例
搜索大于等于3档的机型的个例大于等于3表示搜索 n1 >= 3 的个例
搜索2到4档的机型的个例区间2, 4表示搜索 2 <= n1 <= 4 的个例

字符串类型

支持[是,不是,匹配,不匹配,同时匹配,为空,不为空,开头匹配,开头不匹配,结尾匹配,结尾不匹配,正则表达]这些搜索模式。

字符串类型的筛选项包含,出错堆栈,出错线程,出错进程,消息ID,设备ID,用户ID,场景,机型,厂商等。

搜索模式意义
字符串的精确比较,支持输入多个关键字,这些关键字是OR关系,表示字段的值等于输入关键字中的任意一个时,条件满足。
不是字符串的精确比较,支持输入多个关键字,这些关键字是AND关系,表示字段的值不等于输入关键字中的任意一个时,条件满足。
为空表示字段是一个空串时/或者相应字段没有上报时,条件满足。Bugly平台不区分无值和空串的情况。
不为空表示字段是一个非空串时,即字符串的长度大于0时,条件满足。
匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是OR关系,表示只要字段的值包含输入关键字中的任意一个时,条件满足。
同时匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是AND关系,表示字段的值包含输入关键字中的所有时,条件满足。
不匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是AND关系,表示字段的值不包含输入关键字中的任意一个时,条件满足。
开头匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是OR关系,表示字段的值以输入关键字中的任意一个开头时,条件满足。
开头不匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是AND关系,表示字段的值不以输入关键中的任意一个开头时,条件满足。
结尾匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是OR关系,表示字段的值以输入关键字中的任意一个结尾时,条件满足。
结尾不匹配字符串的模糊匹配,支持输入多个关键字,这些关键字是AND关系,表示字段的值不以输入关键字的任意一个结尾时,条件满足。

以下通过「出错堆栈」的几个示例来演示字符串类型的搜索。

搜索目的操作符输入关键字说明
搜索出「出错堆栈」中包含'com.tencent.bugly'包名的个例匹配'com.tencent.bugly'堆栈往往包含多个函数帧,这里需要用包含,而不是开头匹配。
搜索出「出错堆栈」中同时包含'com.tencent.bugly'和'com.tencent.rmonitor'包名的个例同时匹配'com.tencent.bugly', 'com.tencent.rmonitor'同时匹配表示,出错堆栈需要同时包含指定的所有关键字。

以下通过「错误进程」的几个示例来演示字符串类型的搜索。

假定一个业务包含多个进程,详细如下:

业务进程进程类型
com.tencent.demo主进程
com.tencent.demo:video_1视频进程
com.tencent.demo:video_2视频进程
com.tencent.demo:game_1游戏进程
com.tencent.demo:game_2游戏进程
com.tencent.demo:xg_vip_service服务进程
com.tencent.demo:pm_service服务进程
com.tencent.demo:decode_service服务进程
com.tencent.demo:encode_service服务进程
搜索目的操作符输入关键字说明
搜索出只出现在主进程的个例com.tencent.demo采用字段值的精确匹配
搜索出只在视频进程出现的个例开头匹配com.tencent.demo:video_通过开头匹配来找到视频进程
搜索出在视频进程或者游戏进程出现的个例开头匹配com.tencent.demo:video , com.tencent.demo:game通过输入多个关键字来达到效果
搜索出不在服务进程出现的个例结尾不匹配_service通过结尾不匹配来搜索不在服务进程发生的个例

字符串数组类型

字符串数组类型表示字段的值是一个字符串数组,包含自定义维度的a1-a10,实验ID,个例标签,业务下钻等字段。

字符串数组类型支持[包含,不包含,同时包含,匹配,同时匹配,为空,不为空,开头匹配,结尾匹配]等搜索模式。对于字符串数组的比较,大部分模式最终比较的是字符串数组中的每一个字符串。

搜索模式意义
包含字符串的精确比较,支持输入多个关键字,这些关键字是OR关系,表示这些关键字中的任意一个在字段值中时,条件满足。
不包含字符串的精确比较,支持输入多个关键字,这些关键字是AND关系,表示所有关键字都不在字段值中时,条件满足。
同时包含字符串的精确比较,支持输入多个关键字,这些关键字是AND关系,表示所有关键字都在字段值时,条件满足。
匹配字段串的模糊比较,支持输入多个关键字,这些关键字是OR关系,表示字段值中的任意一个字段串包含输入关键字中的任意一个时,条件满足。
同时匹配字段串的模糊比较,支持输入多个关键字,这些关键字是AND关系,表示字段值中的任意一个字段串同时包含所有输入关键字时,条件满足。
为空表示字段的值是一个空数组时,条件满足。
不为空表示字段的值不是一个空数组时,条件满足。
开头匹配字段串的模糊比较,支持输入多个关键字,这些关键字是OR关系,表示字段值中的任意一个字符串以输入关键字中的任意一个开头时,条件满足。
结尾匹配字段串的模糊比较,支持输入多个关键字,这些关键字是OR关系,表示字段值中的任意一个字符串以输入关键字中的任意一个结尾时,条件满足。

例如用户利用a1字段上报了最近访问的几个页面名称,其中登陆页包含两种Model,'LoginModeOnePage' 和 'LoginModeTwoPage',以下是一些上报个例的a1字段的值。

上报个例a1字段的值
1['LoginModeOnePage', 'MessageListPage', 'FriendDetailPage']
2['LoginModeTwoPage', 'MessageListPage', 'FriendListPage']
3['LoginModeTwoPage', 'MessageListPage', 'FriendListPage', 'FriendDetailPage']
4['MessageListPage', 'FriendListPage', 'FriendDetailPage']
5['FriendListPage', 'MessageListPage', 'FriendDetailPage']

下面通过「自定义维度a1」的几个示例来演示字符串数组类型的搜索。

搜索目的操作符输入关键字说明
搜索出包含登陆页的个列,如上述中的1,2,3个例包含'LoginModeOnePage', 'LoginModeTwoPage'因为登陆页包含两种Model,'LoginModeOnePage' 和 'LoginModeTwoPage'。
搜索出包含登陆页的个列,如上述中的1,2,3个例开头匹配'Login'通过'Login'来匹配登陆页的两种Model。
搜索出同时包含登陆页和好友详情页的个例,如上述中的1,3个例同时匹配'Login','FriendDetailPage'这里不能用同时包含是因为,'LoginModeOnePage'和'LoginModeTwoPage'不会同时出现。
搜索出没有执行过登陆操作的个例,如上述中的4,5个例不包含'LoginModeOnePage', 'LoginModeTwoPage'不包含是包含的否定关系。

可枚举类型

可枚举类型是支持多选的下拉框,下拉框包含全部以及该字段所有的选项。可枚举类型的筛选项包含,版本类型,前后台状态,设备类型,系统堆栈等字段。

可枚举类型可能存储的是布尔类型的值,也可能存储的是字符串,或者整数类型。无论是哪一种类型,可枚举类型肯定是值可枚举的类型,并且值的类型不会太多,往往不会超过10项。

可枚举类型默认是选择全部,表示不筛选指定类型。用户可以通过下拉框,选择要匹配的类型,一般支持多选。

筛选字段枚举值
版本类型全部,未知,开发版,灰度版,正式版
前后台状态全部,未知,前台,后台
设备类型全部,未知,真机,模拟器
系统堆栈是,否

下面通过「版本类型」的几个示例来演示可枚举类型的搜索。

搜索目的选中项说明
搜索所有开发版上报的个例开发版只选中「开发版」表示只搜索开发版的个例
搜索出灰度版和正式版上报的个例灰度版, 正式版选中「灰度版」和「正式版」表示只要是这两版本类型中的一个,条件满足。
搜索所有版本上报的个例全部当选中「全部」选项时,不能同时再选择其他的选项。

特殊类型

特殊类型的筛选项支持[OR,AND]两种搜索模式,包含,联动标记,异常现场,附件等字段。

搜索模式意义
OR支持选择多个选项,这些选项之间是OR关系。
AND支持选择多个选项,这些选项之间是AND关系。

下面通过崩溃问题列表的「联动标记」的几个示例来演示特殊类型的搜索。

搜索目的操作符输入关键字说明
搜索出崩溃前发生过卡顿或者Java内存泄露的个例OR卡顿,Java内存泄露只要发生过卡顿,或者发生过Java内存泄露的个例都算条件满足。
搜索出崩溃前发生过卡顿而且发生过Java内存泄露的个例AND卡顿,Java内存泄露卡顿以及Java内存泄露都发生过的个例才满足条件。