Updated on 2025-08-22 GMT+08:00

Batch Creating Indexes

Function

This API is used to create indexes in batches. By doing so, the number of data scans is reduced and the overall time required is shorten. The types of indexes that can be created are the same as those of the index creation API. For details, see Creating an Index.

After an index is created, wait for 30 seconds for index synchronization. After the synchronization is complete, Cypher queries can be accelerated using the index.

URI

POST /ges/v1.0/{project_id}/graphs/{graph_name}/indices/action?action_id=batch-build
Table 1 URI parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

graph_name

Yes

String

Graph name

Request Parameters

Table 2 Request body parameter descriptions

Parameter

Mandatory

Type

Description

indices

Yes

Array

Index array. A single graph currently supports a maximum of 500 indexes. For details about index parameters, see Table 3.

Table 3 indices parameter descriptions

Parameter

Mandatory

Type

Description

indexName

Yes

String

Index name. The name can contain a maximum of 63 characters. Only letters, numbers, hyphens (-), and underscores (_) are allowed.

indexType

Yes

String

Index type, which is case sensitive

  • GlobalCompositeVertexIndex is a global composite vertex index.
  • GlobalCompositeEdgeIndex is a global composite edge index.
  • CompositeVertexIndex is a local composite vertex index.
  • CompositeEdgeIndex is a local composite edge index.
  • FullTextIndex is a full-text index.

hasLabel

No

Boolean

Whether there are labels. The default value is false.

  • true
  • false

indexLabel

No

List

Label list. This parameter is available and mandatory only when indexType is set to CompositeVertexIndex or CompositeEdgeIndex. It is used to specify the labels on which indexes are created.

indexProperty

No (If hasLabel is false or null, this parameter is mandatory.)

String

Index property list

Indexes can be created for the following property types: integer, float, double, long, enum, string, and date.

strLength

No

Integer

Properties of the string type are truncated to a fixed length during index encoding. This parameter indicates the truncation length. If not specified, the default value is 40 bytes. The value range is [1, 256].

Typically, you do not need to manually specify this parameter. Even if some properties exceed this length and are truncated during index encoding. It usually does not cause significant performance degradation. Unless most properties exceed the default length, you are advised to consider increasing strLength, but this will lead to a decrease in indexing performance.

  • If a property is of type string or char array, the value must not exceed 40 bytes. Any extra characters will be removed.
  • Cypher queries can be accelerated with indexes whose hasLabel is True.
    • If indexProperty is left blank, the created index is a label index, which accelerates label filtering.
    • If indexProperty is specified, the created index is a property index, which accelerates property filtering.

Response Parameters

Table 4 Response body parameter descriptions

Parameter

Type

Description

errorMessage

String

System prompt

  • If execution succeeds, this parameter may be left blank.
  • If execution fails, this parameter is used to display the error message.

errorCode

String

System prompt code

  • If execution succeeds, this parameter may be left blank.
  • If execution fails, this parameter is used to display the error code.

jobId

String

ID of an asynchronous job

NOTE:
  • You can view the job execution status and obtain the return result by querying the job ID. For details, see Job Management APIs.

Example Request

Create multiple composite indexes at a time. The index names are vertexIndex, edgeIndex, and useridIndex.

POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/indices/action?action_id=batch-build
{
    "indices": [
        {
            "indexName": "vertexIndex",
            "indexType": "GlobalCompositeVertexIndex",
            "hasLabel": true,
            "indexProperty": []
        },
        {
            "indexName": "edgeIndex",
            "indexType": "GlobalCompositeEdgeIndex",
            "hasLabel": true,
            "indexProperty": []
        },
	{
            "indexName": "useridIndex",
            "indexType": "GlobalCompositeEdgeIndex",
            "hasLabel": true,
            "indexProperty": ["userid"]
        }
    ]
}

SERVER_URL: Address for accessing a graph. For details about its value, see Using Service Plane APIs.

Example Response

Status code: 200

Example response for a successful request

Http Status Code: 200
{
    "jobId": "ccffb1141c909708a5a700d763dc93450000314299090"
}

Status code: 400

Example response for a failed request

Http Status Code: 400
{
    "errorMessage": "Parameter error!",
    "errorCode": "GES.8005"
}

Status Codes

Return Value

Description

400 Bad Request

Request error.

401 Unauthorized

Authorization failed.

403 Forbidden

No operation permissions.

404 Not Found

No resources found.

500 Internal Server Error

Internal server error.

503 Service Unavailable

Service unavailable.