更新时间:2024-07-01 GMT+08:00
分享

点过滤查询(1.0.0)

功能介绍

查询满足过滤条件的点集合。

URI

POST /ges/v1.0/{project_id}/graphs/{graph_name}/vertices/action?action_id=query
表1 路径参数

参数

是否必选

类型

说明

project_id

String

项目ID。获取方法请参见获取项目ID

graph_name

String

图名称。

请求参数

表2 Body参数说明

参数

是否必选

类型

说明

labels

labels和vertexFilters两者必选其一

String

点类型过滤条件。

vertexFilters

labels和vertexFilters两者必选其一

Object

过滤条件,按属性过滤,JsonArray格式字符串。

offset

Integer

本次请求的起始位置。

limit

Integer

每页资源数量的最大值,默认为10。

sorts

Object

结果排序的属性,JsonArray格式字符。

表3 sorts参数说明

参数

是否必选

类型

说明

key

Key和propertyName必选其一

String

可选值有id、label、property,分别表示对id、label和属性排序。

propertyName

Key和propertyName必选其一

String

属性名称。

orderValue

String

可选“incr”和“decr”,分别表示升序和降序,默认值“incr”。

表4 vertexFilters参数结构

参数

是否必选

类型

说明

propertyName

String

属性名称。

predicate

String

逻辑关系,可选值“=”、“<”、“>”、“<=”、“>=”、“range”、“has”“hasNot”、“full_text_match”、“full_text_prefix”、“full_text_wildcard”、“full_text_regexp”、“full_text_fuzzy”和 “full_text_combination”。

说明:

属性复合类型为list或者set时,逻辑关系仅支持has、hasNot。关于复合类型的介绍请参见图数据的格式

values

String

属性的值。当predicate为full_text_combination时,values类型不是string,详见vertexFilters样例2以及说明。

type

String

过滤条件逻辑关系,可选值“and”和“or”,默认为“and”。

响应参数

表5 响应Body参数

参数

类型

说明

errorMessage

String

系统提示信息。

  • 执行成功时,字段可能为空。
  • 执行失败时,用于显示错误信息。

errorCode

String

系统提示信息。

  • 执行成功时,字段可能为空。
  • 执行失败时,用于显示错误码。

jobId

String

查询节点任务ID。请求失败时字段为空。

说明:

可以查询jobId查看任务执行状态、获取返回结果,详情参考查询Job状态(1.0.0)-业务面

jobType

Integer

任务类型。请求失败时,该字段为空。

请求示例

查询满足过滤条件的点集合,请求的起始位置为0,每页资源数量的最大值为2,用于过滤的属性条件为movie和user,用于过滤的属性名为Age。

POST https://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/vertices/action?action_id=query  

{
   "offset":0,
   "limit":2,
   "labels": ["movies",
             "user"],
   "vertexFilters":[{
      "propertyName":"Age",
      "predicate":"=", 
      "values":["18-24"]
      }
   ]
} 

SERVER_URL:图的访问地址,取值请参考业务面API使用限制

vertexFilters样例1
[
 {
   "propertyName":"Gender",
   "predicate":"=",
   "values":["F"]
 },
 {
   "propertyName":"Age",
   "predicate":"range", 
   "values":["18-24","56+"],
   "type":"or"
 }
]
vertexFilters样例2(full_text_combination)
"vertexFilters": [
        {
            "propertyName": "propertyName",
            "predicate": "full_text_combination",
            "values": [
                {
                    "propertyName": "movieid",
                    "value": "0"
                },
                {
                    "propertyName": "title",
                    "value": "american"
                }
            ]
        }
    ]

当predicate为“full_text_match”、“full_text_prefix”、“full_text_wildcard”、“full_text_regexp”和“full_text_fuzzy”、“full_text_combination”时,vertexFilters列表中只能有一个元素,即不能有多层过滤并列存在。labels参数不可以同时出现。当predicate为“full_text_combination”时,最外层的propertyName直接设置为“propertyName”即可, values不再是简单的string类型列表,values的每个元素有“propertyName”和“value”两个成员。如果您想使用以上全文索引的能力,需要预先调用创建全文索引的API。

响应示例

状态码: 200

成功响应示例
Http Status Code: 200
{
    "jobId": "03e774f5-29ea-4187-9508-5435f3892ead016886200",
    "jobType": 1
}

状态码: 400

失败响应示例

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

状态码

返回值

说明

400 Bad Request

请求错误

401 Unauthorized

鉴权失败

403 Forbidden

没有操作权限

404 Not Found

找不到资源

500 Internal Server Error

服务内部错误

503 Service Unavailable

服务不可用

错误码

请参见错误码

相关文档