高级搜索

当您需要在物联网平台搜索并下载指定条件的设备列表(包含ProductKeyDeviceName)时,可以使用高级搜索功能,通过类SQL语句快速搜索满足指定条件的设备,例如在线设备。本文介绍高级搜索操作,以及使用的类SQL语法。

使用限制

  • 支持地域:华东2(上海)、华北2(北京)、华南1(深圳)

  • 功能限制:

    • 旧版公共实例:不支持通过物模型搜索设备和下载设备文件。

    • 企业版实例和新版公共实例:仅华东2(上海)地域下,高级搜索中通过物模型搜索设备的功能,仅可在设备管理 > 设备页面的高级搜索页签使用。

      使用物模型搜索功能,需先配置物模型索引,然后物联网平台基于设备运行时数据,检索设备最近一次上报的属性数据,搜索出符合条件设备。

      重要
      • 一个企业版实例下,最多可配置100个物模型属性的索引。

      • MQTT型企业版实例下不支持高级搜索功能。

应用场景

物联网平台控制台的以下使用场景支持高级搜索:

  • 查看设备信息:在设备管理 > 设备页面的高级搜索页签,从设备列表搜索出指定设备进行管理。

  • 设备分组:在向设备分组添加设备时,搜索待添加的设备。

  • OTA升级:在验证OTA升级包、创建批量升级批次时,搜索待升级的设备。

您也可以调用QueryDeviceBySQL API进行设备高级搜索。使用API进行高级搜索时,不局限于以上控制台使用场景。

操作步骤

本文以使用高级搜索功能向设备分组添加设备、在设备管理中通过物模型搜索设备为例,介绍物联网平台控制台的设备高级搜索操作。

  1. 登录物联网平台控制台

  2. 实例概览页签的全部环境下,找到对应的实例,单击实例卡片。

  3. 通过高级搜索功能,搜索符合条件设备。

    1. 在左侧导航栏,选择设备管理 > 分组。在分组页面,单击已创建分组对应的查看

    2. 分组详情页面,单击设备列表 > 添加设备到分组。在添加设备到分组面板,开启右上角高级搜索开关。

      设备选择页面

    3. 在搜索框中输入搜索条件的语句,单击搜索图标搜索

      搜索条件语句语法的更多信息,请参见类SQL语法说明

      列表显示搜索结果,搜索框右侧显示下载图标。

      您可单击下载图标下载,获取已搜索设备的列表文件,格式为CSV。

      搜索

  4. 通过物模型搜索设备。

    1. 在左侧导航栏,选择设备管理 > 设备,单击高级搜索页签。

    2. 高级搜索页签,单击通过物模型数据搜索右侧的配置索引

    3. 物模型索引配置面板,选择产品和物模型模块,然后选中待索引属性,单击确定

      说明
      • 配置属性索引后,最多一分钟即可生效。

      • 配置属性索引后,如果您删除了产品下该物模型属性,仍可基于该属性最近一次上报数据检索设备。

      物模型索引配置

    4. 在搜索框中输入物模型索引条件,单击搜索

      您可在通过物模型数据搜索下方,单击复制property.floatText > 11property.module.floatText > 11,然后将floatText替换为已配置索引的属性标识符;module替换为对应的自定义模块标识符;11替换为您要搜索的条件值。

      重要

      条件值的数据类型必须与物模型属性的数据类型保持一致。

      例如,物模型属性Temperature(温度)为Double类型,需要搜索上报温度值大于11的设备,条件值必须设置11.0,否则无法进行搜索。

      高级搜索页签,显示搜索结果。如果有满足条件的设备,您可单击下载搜索结果,获取已搜索设备的列表文件,格式为CSV。结果

    5. 可选:如果您需要取消属性的索引能力,在高级搜索页签,单击重置,回到搜索页面。然后单击配置索引,进入物模型索引配置面板。

      您可先选择产品和物模型模块,或单击右上角已选择,然后取消选中的目标属性,单击确定

      如果产品下已删除属性,您可在已选择列表,找到要取消索引的属性。

      重要

      任何情况下,如果您取消了属性的索引能力,都不再支持通过该属性搜索设备。

      取消属性索引,会清空该属性的历史搜索数据。如果累计历史数据过多,清空操作会花费时间,属性索引状态不会立刻取消,即您重新打开物模型索引配置面板,该属性可能仍处于选中状态。此时,请您耐心等待,不可重复删除操作。

类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_creategmt_modifiedactive_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

设备状态,取值:

  • ONLINE:在线

  • OFFLINE:离线

  • UNACTIVE:未激活

  • DISABLE:已禁用

property.floatText

text

物模型属性标识符。

  • property.floatText:默认模块属性。

  • property.module.floatText:自定义模块属性。

仅企业版实例下设备管理 > 设备页面的高级搜索页签支持该字段检索。

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语句快速搜索满足指定条件的设备。