标识符
标识符是用于命名数据库对象(例如索引名称、字段名称、别名等)的 ID。OpenSearch 支持两种类型的标识符:常规标识符和带分隔符的标识符。
常规标识符
常规标识符是由 ASCII 字母(小写或大写)开头的字符串。下一个字符可以是字母、数字或下划线 (_)。它不能是保留关键字。不允许使用空格和其他特殊字符。
OpenSearch 支持以下常规标识符
- 以点
.
符号为前缀的标识符。用于隐藏索引。例如.opensearch-dashboards
。 - 以
@
符号为前缀的标识符。用于 Logstash 摄入生成的元字段。 - 中间带有连字符
-
的标识符。用于包含日期信息的索引名称。 - 包含星号
*
的标识符。用于索引模式的通配符匹配。
对于常规标识符,您可以直接使用名称,无需任何反引号或转义字符。在此示例中,source
、fields
、account_number
、firstname
和 lastname
都是标识符。其中,source
字段是保留标识符。
SELECT account_number, firstname, lastname FROM accounts;
account_number | firstname | lastname |
---|---|---|
1 | Amber | Duke |
6 | Hattie | Bond |
13 | Nanette | Bates |
18 | Dale | Adams |
带分隔符的标识符
带分隔符的标识符可以包含常规标识符不允许的特殊字符。您必须使用反引号 (``) 将带分隔符的标识符括起来。反引号将标识符与特殊字符区分开来。
如果索引名称包含点 (.
),例如 log-2021.01.11
,请使用带反引号的带分隔符标识符来转义它 `log-2021.01.11
`。
使用带分隔符标识符的典型示例
- 包含保留关键字的标识符。
- 包含
.
的标识符。类似地,-
用于包含日期信息。 - 包含其他特殊字符的标识符。例如,Unicode 字符。
用反引号引用索引名称
source=`accounts` | fields `account_number`;
account_number |
---|
1 |
6 |
13 |
18 |
区分大小写
标识符区分大小写。它们必须与 OpenSearch 中存储的内容完全相同。
例如,如果您运行 source=Accounts
,您将收到“未找到索引”异常,因为实际的索引名称是小写。