使用Device Registry Management API实现设备不区分大小写搜索
实现方案
1. 不区分大小写的搜索实现
主流厂商的Device Registry Management API基本都原生支持字符串字段的大小写不敏感匹配,通常有两种调用方式:
- 显式指定大小写控制参数:在搜索规则配置中传入
caseSensitive: false即可开启不区分大小写匹配,适配设备名称、设备标签、固件版本等字符串类型字段,示例参数片段:
{ "searchRule": { "keywords": "testDevice001", "caseSensitive": false, "matchFields": ["deviceName", "deviceTag"] } }
- 无显式参数时的兼容方案:如果接口没有提供专门的大小写控制参数,可通过内置转换函数统一将匹配字段和搜索值转为小写/大写后匹配,筛选参数示例:
LOWER(deviceName) = LOWER('testdevice001')
2. 可选参数配置说明
筛选参数
通常通过filter字段传递,支持逻辑运算符(与&&、或||、非!)和比较运算符(等于=、大于>、包含in等)自由组合,示例筛选在线、固件版本高于2.4.0的设备:filter = "status = 'ONLINE' && firmwareVersion > '2.4.0'"
分页参数
通用分页包含两个可调参数,按需传入即可:
pageSize:单页返回的设备数量上限,常规取值范围为1~1000pageNumber/nextToken:分页偏移标识,首次查询传1或空字符串,后续查询传入上一次接口返回的页码+1或游标值即可
排序参数
通过sort字段指定排序规则,支持同时配置多个排序字段,优先级按传入顺序生效:
- 字段名前加
+代表正序,加-代表倒序,示例按设备注册时间倒序、设备名称正序排列:sort = "-registerTime, +deviceName"
3. 完整请求示例(REST接口)
POST /v1/device/registry/list HTTP/1.1 Host: your-api-endpoint Authorization: Bearer your-access-token Content-Type: application/json { "tenantId": "t-87654321", "searchRule": { "keywords": "testdev", "caseSensitive": false, "matchFields": ["deviceName"] }, "filter": "status = 'ONLINE' && firmwareVersion > '2.4.0'", "pageSize": 20, "pageNumber": 1, "sort": "-registerTime, +deviceName" }
内容的提问来源于stack exchange,提问作者Jari M
相关产品推荐
相关产品推荐

