Creates indexes for a Logstore.
Usage notes
- Host consists of a project name and a Log Service endpoint. You must specify a project in Host.
An AccessKey pair is created and obtained. For more information, see AccessKey pair.
The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in Log Service is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. Make sure that the RAM user has the management permissions on Log Service resources. For more information, see Create a RAM user and authorize the RAM user to access Log Service.
- The information that is required to query logs is obtained. The information includes the name of the project to which the logs belong, the region of the project, and the name of the Logstore to which the logs belong. For more information, see Manage a project and Manage a Logstore.
- You can manage the configuration of your indexes. For example, you can create, update, and delete indexes for specific fields, and modify related parameters. The new index configuration takes effect only for the logs that are written after you update the index configuration. If you want to query and analyze historical logs, you must use the reindexing feature. For more information, see Reindex logs for a Logstore.
- Query and analysis results vary based on the index configuration. You must create indexes based on your business requirements. If you create both full-text indexes and field indexes, the field indexes take precedence.
- You can create indexes in the Log Service console with ease. For more information, see Create indexes.
- If you create indexes, index traffic is generated.
Authentication resources
The following table describes the authorization information that is required for this operation. You can add the information to the Action element of a policy statement to grant a RAM user or a RAM role the permissions to call this operation.
Action | Resource |
log:CreateIndex | acs:log:{#regionId}:{#accountId}:project/{#ProjectName}/logstore/{#LogstoreName} |
Debugging
Request headers
This operation uses only common request headers and does not have operation-specific request headers. For more information, see Common request parameters.
Request syntax
POST /logstores/{logstore}/index HTTP/1.1
Request parameters
Parameter | Type | Position | Required | Example | Description |
logstore | String | Path | Yes | ali-logstore-test | The name of the Logstore. |
project | String | Host | Yes | ali-test-project | The name of the project. |
Object | Body | No | The request body. | ||
keys | Map | Body | No | The configuration of field indexes. A field index is a key-value pair in which the key specifies the name of the field and the value specifies the index configuration of the field. You must specify at least one of the keys and line parameters. | |
Object | Body | No | The configuration of the field index. | ||
caseSensitive | Boolean | Body | No | false | Specifies whether to enable case sensitivity. This parameter is required only when type is set to text. Valid values:
|
chn | Boolean | Body | No | false | Specifies whether to include Chinese characters. This parameter is required only when type is set to text.
|
type | String | Body | Yes | text | The data type of the field value. Valid values: text, long, double, and json. |
alias | String | Body | No | ip | The alias of the field. Example: ip. An alias is used only in analytic statements. You must use the original field name in search statements. |
token | Array of String | Body | No | [","," ","'","\"",";","=","(",")","[","]","{","}","?","@","<",">","/",":","\n","\t","\r"] | The delimiters. This parameter is required only when type is set to text. |
doc_value | Boolean | Body | No | true | Specifies whether to turn on Enable Analytics. Valid values:
|
line | Object | Body | No | The configuration of full-text indexes. You must specify at least one of the keys and line parameters. | |
chn | Boolean | Body | No | false | Specifies whether to include Chinese characters. Valid values:
|
caseSensitive | Boolean | Body | No | false | Specifies whether to enable case sensitivity.
|
token | Array of String | Body | Yes | ,, ., \r,\n,\t,?, @ | The delimiters. You can specify the delimiters that you want to use. |
include_keys | Array of String | Body | No | includeKey | The included fields. You cannot specify both the include_keys and exclude_keys parameters. |
exclude_keys | Array of String | Body | No | excludeKey | The excluded fields. You cannot specify both the include_keys and exclude_keys parameters. |
ttl | Integer | Body | No | 30 | The log retention period. Unit: days. |
max_text_len | Integer | Body | No | 2048 | The maximum length of a field value that can be retained. Unit: bytes. Default value: 2048. The default value is equal to 2 KB. You can change the value of the max_text_len parameter. Valid values: 64 to 16384. Note If the length of a field value exceeds the value of this parameter, the field value is truncated, and the excess part is not involved in analysis. |
log_reduce | Boolean | Body | No | false | Specifies whether to turn on LogReduce. After you turn on LogReduce, either the whitelist or blacklist takes effect. |
log_reduce_white_list | Array of String | Body | No | a | The fields in the whitelist that you want to use to cluster logs. |
log_reduce_black_list | Array of String | Body | No | b | The blacklist of fields that you want to use to cluster logs. |
Response parameters
Parameter | Type | Example | Description |
Server | String | nginx | The name of the server. |
Content-Type | String | application/json | The format of the response body. |
Content-Length | String | 0 | The length of the response body. |
Connection | String | close | Indicates whether the connection is persistent. Valid values:
|
Date | String | Sun, 27 May 2018 08:25:04 GMT | The time when the response was returned. |
x-log-requestid | String | 5B0A6B60BB6EE39764D458B5 | The request ID. |
Examples
Sample requests
POST /logstores/ali-logstore-test/index HTTP/1.1
Host:ali-project-test.cn-hangzhou.log.aliyuncs.com
Content-Type:application/json
{
"keys" : {
"key" : {
"caseSensitive" : false,
"chn" : false,
"type" : "text",
"alias" : "myAlias",
"token" : [ ",, ., \\r,\\n,\\t,?, @" ],
"doc_value" : false
}
},
"line" : {
"chn" : false,
"caseSensitive" : false,
"token" : [ ",, ., \\r,\\n,\\t,?, @" ],
"include_keys" : [ "includeKey" ],
"exclude_keys" : [ "excludeKey" ]
},
"ttl" : 30,
"max_text_len" : 2048,
"log_reduce" : false,
"log_reduce_white_list" : [ "a" ],
"log_reduce_black_list" : [ "b" ]
}
Sample success responses
JSON
format
HTTP/1.1 200 OK
Error codes
For a list of error codes, see Service error codes.
HttpStatusCode | ErrorCode | ErrorMessage | Description |
400 | IndexInfoInvalid | Required field token is lacking or of error format. | A required parameter is not specified, or the format is invalid. |
400 | IndexAlreadyExist | Logstore index is already created. | The specified index already exists. |
400 | ParameterInvalid | Index detail too long, should be less or equal than 65535. | The index configuration is excessively long. |
404 | ProjectNotExist | Project does not exist. | The specified project does not exist. |
404 | LogStoreNotExist | Logstore does not exist. | The specified Logstore does not exist. |
500 | InternalServerError | Specified Server Error Message. | An internal server error has occurred. |
For more information, see Common error codes.