Updated on 2023-08-04 GMT+08:00

Querying Edges That Meet Filter Criteria (1.0.0)

Function

This API is used to query edges that meet filter criteria.

URI

POST /ges/v1.0/{project_id}/graphs/{graph_name}/edges/action?action_id=query
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 parameters

Parameter

Mandatory

Type

Description

labels

Either labels or edgeFilters is mandatory.

String

Filter criteria of the relationship type

edgeFilters

Either labels or edgeFilters is mandatory.

String

Filter criteria, in JSONArray format. Vertices are filtered by property.

offset

No

Integer

Start position of the request

limit

No

Integer

Expected number of edges returned by a query

sorts

No

Object

Result sorting property.

It is in JSONArray format.

Table 3 sorts parameter description

Parameter

Mandatory

Type

Description

key

Either Key or propertyName is mandatory.

String

Possible values are label and property, which indicate that labels or properties are sorted.

propertyName

Either Key or propertyName is mandatory.

String

Property name

orderValue

No

String

Possible values are incr and decr, which indicate ascending and descending order respectively. The default value is incr.

Table 4 edgeFilters parameter structure

Parameter

Mandatory

Type

Description

propertyName

Yes

String

Property name

predicate

Yes

String

Logical relationship. Possible values are =, <, >, <=, >=, range, has, hasNot, full_text_match, full_text_prefix, full_text_wildcard, full_text_regexp, full_text_fuzzy, and full_text_combination.

NOTE:

If the property is of the composite type, such as list or set, the predicate can only be has or hasNot.

values

No

String

Property value. When predicate is full_text_combination, values cannot be a string. For details, see the following note.

type

No

String

Logical relationship of filter criteria. Possible values are and and or. The default value is and.

When predicate is set to full_text_match, full_text_prefix, full_text_wildcard, full_text_regexp, full_text_fuzzy, or full_text_combination, the edgeFilters list can contain only one element, that is, multi-layer filters are not allowed. The labels parameter cannot be used at the same time. When predicate is full_text_combination, set the outermost propertyName to propertyName. In this case, the values parameter is not a simple string list. Each element of the values list has two members: propertyName and value. To use the full-text index, you need to call the API for creating a full-text index first.

Response Parameters

Table 5 Response body parameters

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 the edge query 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

Query edges that meet filter criteria. The start position of the request is 0, the number of edges to be returned is 20, and the filter criterion of the relationship type is rate.

POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/edges/action?action_id=query
{
    "offset":"0",
    "limit":"20",
    "labels":[
        "rate"
    ],
    "edgeFilters":[
        {
            "propertyName":"Score",
            "predicate":">=",
            "values":[
                "2"
            ]
        },
        {
            "propertyName":"Datetime",
            "predicate":"range",
            "values":[
                "1998-12-27 01:00:00",
                "2000-12-31 00:12:38"
            ],
            "type":"or"
        }
    ]
}

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": "f9987cab-64d3-4b3d-ac43-e91ae0c21bef168127124",
  "jobType": 0
}

Status code: 400

Example response for a failed request

Http Status Code: 400
{
  "errorMessage": "Bad Request, parameter labels and edgeFilters cannot all be null",
  "errorCode": "GES.8103"
}

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.

Error Codes

See Error Codes.