Identifiers
An identifier is an ID to name your database objects, such as index names, field names, aliases, and so on. OpenSearch supports two types of identifiers: regular identifiers and delimited identifiers.
Regular identifiers
A regular identifier is a string of characters that starts with an ASCII letter (lower or upper case). The next character can either be a letter, digit, or underscore (_). It can’t be a reserved keyword. White space and other special characters are also not allowed.
OpenSearch supports the following regular identifiers:
- Identifiers prefixed by a dot
.sign. Use to hide an index. For example.opensearch-dashboards. - Identifiers prefixed by an
@sign. Use for meta fields generated by Logstash ingestion. - Identifiers with hyphen
-in the middle. Use for index names with date information. - Identifiers with star
*present. Use for wildcard match of index patterns.
For regular identifiers, you can use the name without any back tick or escape characters. In this example, source, fields, account_number, firstname, and lastname are all identifiers. Out of these, the source field is a reserved identifier.
SELECT account_number, firstname, lastname FROM accounts;
| account_number | firstname | lastname |
|---|---|---|
| 1 | Amber | Duke |
| 6 | Hattie | Bond |
| 13 | Nanette | Bates |
| 18 | Dale | Adams |
Delimited identifiers
A delimited identifier can contain special characters not allowed by a regular identifier. You must enclose delimited identifiers with back ticks (``). Back ticks differentiate the identifier from special characters.
If the index name includes a dot (.), for example, log-2021.01.11, use delimited identifiers with back ticks to escape it `log-2021.01.11`.
Typical examples of using delimited identifiers:
- Identifiers with reserved keywords.
- Identifiers with a
.present. Similarly,-to include date information. - Identifiers with other special characters. For example, Unicode characters.
To quote an index name with back ticks:
source=`accounts` | fields `account_number`;
| account_number |
|---|
| 1 |
| 6 |
| 13 |
| 18 |
Case sensitivity
Identifiers are case sensitive. They must be exactly the same as what’s stored in OpenSearch.
For example, if you run source=Accounts, you’ll get an index not found exception because the actual index name is in lower case.