当您需要在物联网平台搜索并下载指定条件的设备列表(包含ProductKey和DeviceName)时,可以使用高级搜索功能,通过类SQL语句快速搜索满足指定条件的设备,例如在线设备。本文介绍高级搜索操作,以及使用的类SQL语法。
使用限制
支持地域:华东2(上海)、华北2(北京)、华南1(深圳)。
功能限制:
旧版公共实例:不支持通过物模型搜索设备和下载设备文件。
企业版实例和新版公共实例:仅华东2(上海)地域下,高级搜索中通过物模型搜索设备的功能,仅可在 页面的高级搜索页签使用。
使用物模型搜索功能,需先配置物模型索引,然后物联网平台基于设备运行时数据,检索设备最近一次上报的属性数据,搜索出符合条件设备。
重要一个企业版实例下,最多可配置100个物模型属性的索引。
MQTT型企业版实例下不支持高级搜索功能。
应用场景
物联网平台控制台的以下使用场景支持高级搜索:
您也可以调用QueryDeviceBySQL API进行设备高级搜索。使用API进行高级搜索时,不局限于以上控制台使用场景。
操作步骤
本文以使用高级搜索功能向设备分组添加设备、在设备管理中通过物模型搜索设备为例,介绍物联网平台控制台的设备高级搜索操作。
登录物联网平台控制台。
在实例概览页签的全部环境下,找到对应的实例,单击实例卡片。
通过高级搜索功能,搜索符合条件设备。
在左侧导航栏,选择 。在分组页面,单击已创建分组对应的查看。
在分组详情页面,单击 。在添加设备到分组面板,开启右上角高级搜索开关。
在搜索框中输入搜索条件的语句,单击搜索图标。
搜索条件语句语法的更多信息,请参见类SQL语法说明。
列表显示搜索结果,搜索框右侧显示下载图标。
您可单击下载图标,获取已搜索设备的列表文件,格式为CSV。
通过物模型搜索设备。
在左侧导航栏,选择 ,单击高级搜索页签。
在高级搜索页签,单击通过物模型数据搜索右侧的配置索引。
在物模型索引配置面板,选择产品和物模型模块,然后选中待索引属性,单击确定。
说明配置属性索引后,最多一分钟即可生效。
配置属性索引后,如果您删除了产品下该物模型属性,仍可基于该属性最近一次上报数据检索设备。
在搜索框中输入物模型索引条件,单击搜索。
您可在通过物模型数据搜索下方,单击复制property.floatText > 11或property.module.floatText > 11,然后将floatText替换为已配置索引的属性标识符;module替换为对应的自定义模块标识符;11替换为您要搜索的条件值。
重要条件值的数据类型必须与物模型属性的数据类型保持一致。
例如,物模型属性Temperature(温度)为Double类型,需要搜索上报温度值大于11的设备,条件值必须设置11.0,否则无法进行搜索。
在高级搜索页签,显示搜索结果。如果有满足条件的设备,您可单击下载搜索结果,获取已搜索设备的列表文件,格式为CSV。
可选:如果您需要取消属性的索引能力,在高级搜索页签,单击重置,回到搜索页面。然后单击配置索引,进入物模型索引配置面板。
您可先选择产品和物模型模块,或单击右上角已选择,然后取消选中的目标属性,单击确定。
如果产品下已删除属性,您可在已选择列表,找到要取消索引的属性。
重要任何情况下,如果您取消了属性的索引能力,都不再支持通过该属性搜索设备。
取消属性索引,会清空该属性的历史搜索数据。如果累计历史数据过多,清空操作会花费时间,属性索引状态不会立刻取消,即您重新打开物模型索引配置面板,该属性可能仍处于选中状态。此时,请您耐心等待,不可重复删除操作。
类SQL语法说明
在控制台使用高级搜索功能时,类SQL语句由WHERE子句、ORDER BY子句(可选)组成,省略SELECT子句、LIMIT子句以及WHERE子句的WHERE
。长度限制为400个字符。
示例:
product_key = "a1*****" order by active_time
WHERE子句
格式:
[condition1] AND [condition2]
省略WHERE
。
最多使用5个condition,且不支持嵌套,请参见下面的检索字段说明、运算符说明。
连接词支持AND、OR,最多使用5个连接词。
ORDER BY子句(可选)
ORDER BY子句用来实现自定义排序,可自定义排序的字段包括gmt_create、gmt_modified、active_time。
该子句可不填,不填时随机排序。
检索字段说明
字段名 | 类型 | 说明 |
product_key | text | 设备所属产品ProductKey。 |
iot_id | text | 设备标识符。默认返回iot_id。 |
name | text | 设备名称。 |
active_time | date | 设备激活时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。 |
nickname | text | 设备备注名称。 |
gmt_create | date | 设备创建时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。 |
gmt_modified | date | 设备的备注名称最后一次更新时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。 |
status | text | 设备状态,取值:
|
property.floatText | text | 物模型属性标识符。
仅企业版实例下 页面的高级搜索页签支持该字段检索。 |
property.module.floatText | text | |
group.group_id | text | 设备分组ID。 |
tag.tag_name | text | 设备标签名。 |
tag.tag_value | text | 设备标签值。 |
ota_module.name | text | OTA模块名称。 建议与ota_module.version配合使用,用于指定设备当前OTA版本号对应的OTA模块。 |
ota_module.version | text | 设备当前OTA版本号。 建议与ota_module.name配合使用。 |
运算符说明
运算符 | 支持的字段数值类型 |
= | number、date、text、keyword |
> | number、date |
< | number、date |
LIKE | text |
其中,LIKE
支持前缀匹配,不支持后缀匹配或通配符匹配。前缀必须满足以下条件:
前缀不得少于4个字符,且不能包含任何特殊字符,例如反斜线(\)、正斜线(/)、and(&)、加号(+)、短划线(-)、感叹号(!)、半角圆括号(())、半角冒号(:)、波浪线(~)、方括号([])、大括号({})、星号(*)、半角问号(?)等。
前缀填写完成后,必须固定以
%
结尾。
示例:
product_key = "a1*********" and name LIKE "test%"
相关API
QueryDeviceBySQL:通过类SQL语句快速搜索满足指定条件的设备。