Updated on 2022-08-09 GMT+08:00

Creating an Index

Function

This API is used to create indexes based on the specified information such as indexName and IndexType. Currently, GES supports composite indexes.

  • Composite indexes include global vertex indexes (GlobalCompositeVertexIndex) and global edge indexes (GlobalCompositeEdgeIndex). Composite indexes can be used to create indexes on labels and properties. Indexes can accelerate the query speed.
  • Full-text indexes (FullTextIndex) can implement functions such as full-text search and fuzzy search. If you search data immediately after an update, you may get the old data. You are advised to query the data 1 second after the update. For details about how to use full-text indexes, see Querying Vertices That Meet Filter Criteria and Querying Edges That Meet Filter Criteria. You can also use full-text indexes in Cypher statements. For details, see Performing Cypher Queries.

    Currently, full-text indexes are available for 100-billion-edge graphs only.

Index Feature Comparison

Feature

Fuzzy Search

Speed

Flexibility

Composite indexes

No

Fast

Fixed composite property keys only

Full-text indexes

Yes

Slower than composite indexes

Randomly combined property keys

URI

  • URI format
    POST /ges/v1.0/{project_id}/graphs/{graph_name}/indices
  • Parameter description
    Table 1 URI parameter description

    Parameter

    Mandatory

    Type

    Description

    project_id

    Yes

    String

    Project ID, which is used for resource isolation. For details, see Obtaining a Project ID.

    graph_name

    Yes

    String

    Graph name

Request

  • Sample request (composite index)
    POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/indices
    {
        "indexName":"ageIndex",
        "indexType": "GlobalCompositeVertexIndex",
    
        "hasLabel": "true",
        "indexProperty": ["age"]
    }

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

    • Request body parameter description
      Table 2 Request body parameter description

      Parameter

      Mandatory

      Type

      Description

      indexName

      Yes

      String

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

      indexType

      Yes

      String

      Index type. The value is case-sensitive. GlobalCompositeVertexIndex is a global composite vertex index.

      hasLabel (for 100-billion-edge)

      No

      Boolean

      Whether labels exist. The default value is false.

      • true
      • false

      indexProperty

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

      String

      Index property list.

      The property types that can be used to create indexes include integer, float, double, long, enum, char array, string, and date.

      If a property is of the string or char array type, it is recommended that the length be less than or equal to 40 bytes. The excess part will be deleted.

Response

  • Parameter description
    Table 3 Parameter description

    Parameter

    Mandatory

    Type

    Description

    errorMessage

    No

    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

    No

    String

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

    job_id

    No

    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.

    jobType

    No

    String

    Type of an asynchronous job

    result

    No

    String

    If the execution is successful, the value of result is success.

  • Response example (successful request)
    Http Status Code: 200
    {
    "jobId": "f99f60f1-bba6-4cde-bd1a-ff4bdd1fd500000168232",
    "jobType": 8
    }
  • Response example (failed request)
    Http Status Code: 400
    {
      "errorMessage": "graph [demo] is not found",
      "errorCode": "GES.8603"
    }

Return Value

  • Normal

    200

  • Abnormal
    Table 4 Return code for failed requests

    Return Value

    Description

    400 Bad Request

    Request error.

    401 Unauthorized

    Authentication failed.

    403 Forbidden

    No operation permission.

    404 Not Found

    The requested resource was not found.

    500 Internal Server Error

    Internal service error.

    503 Service Unavailable

    Service unavailable.