

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 查询语法
<a name="query-syntax"></a>

在实例集索引中，您可以使用查询语法来指定查询。

## 支持的特征
<a name="supported-query-syntax"></a>

查询语法支持以下特征：
+ 术语和短语
+ 搜索字段
+ 前缀搜索
+ 范围搜索
+ 布尔运算符 `AND`、`OR`、`NOT` 和 `–`。使用连字符从搜索结果中排除某事物（例如 `thingName:(tv* AND -plasma)`）。
+ 分组
+ 字段分组
+ 对特殊字符转义（如，使用 *\$1*）
+ 前导通配符的使用限制为每个查询 1 个查询词。例如，您不能在同一个查询中搜索 `thingName:*my` 和 `thingGroupNames:*echo`。包含前导通配符的查询最大查询长度为 100 个字符。
**注意**  
 队列索引查询 API 限制超过每秒 30 个请求的账户在使用前导通配符查询术语时会受到限制。此 30 requests-per-second 限制适用于所有舰队索引查询的账户级别 APIs。

## 不支持的 特征
<a name="unsupported-query-syntax"></a>

查询语法不支持以下特征：
+ 正则表达式
+ 提升
+ 排名
+ 模糊搜索
+ 近似搜索
+ 排序
+ 聚合
+ 特殊字符：```、`@`、`#`、`%`、`\`、`/`、`'`、`;` 和 `,`。请注意，只有地理查询才支持 `,`。

## 注意
<a name="query-syntax-limitations"></a>

关于查询语言需要注意的几点：
+ 默认运算符为 AND。`"thingName:abc thingType:xyz"` 的查询等同于 `"thingName:abc AND thingType:xyz"`。
+ 如果未指定字段，则会在所有注册表、Device Shadow 和 Device Defender 字段中 AWS IoT 搜索该术语。
+ 所有字段名称均区分大小写。
+ 搜索不区分大小写。用空格字符分隔单词，如 Java 的 `Character.isWhitespace(int)` 中所定义的。
+ Device Shadow 数据（未命名影子和命名影子）的索引包括“reported”、“desired”、“delta”和“metadata”部分。
+ 设备影子和注册表版本不可搜索，但会在响应中提供。
+ 查询中字词的数量上限为 12 个。
+ 只有地理查询中才支持特殊字符 `,`。