更新时间:2024-06-20 GMT+08:00

新建索引

功能介绍

根据给定的indexName,IndexType等信息创建索引。目前支持两种索引:复合索引和全文索引。

  • 复合索引有全局点索引(GlobalCompositeVertexIndex),全局边索引(GlobalCompositeEdgeIndex)以及局部点索引(CompositeVertexIndex),和局部边索引(CompositeEdgeIndex)。复合索引是针对固定组合的属性建立的,其中局部索引可以在指定的label上建立索引。而全局索引复合索引不需要指定label,只要某个label包含指定属性,就会自动在此label上建立索引。使用索引查询可以加快速度。
  • 全文索引(FullTextIndex)可以实现全文搜索、模糊搜索等功能。由于全文索引的刷新机制,更新数据后立即查询可能查到的是旧数据,建议更新后间隔一秒以上再进行查询。全文索引的使用请查看点过滤查询边过滤查询。您也可以使用cypher语句来执行全文索引,具体请查看cypher操作相关章节。
  • 目前全文索引特性只在持久化版规格版本中支持。
  • 索引创建后需要等待30秒索引同步时间,同步完成后Cypher查询才可以利用索引进行加速。

索引特性对比

特性

模糊查询

速度

灵活度

复合索引

不支持

快速

仅限于固定组合属性键。

全文索引

支持

比复合慢

可以任意组合属性键。

URI

POST /ges/v1.0/{project_id}/graphs/{graph_name}/indices
表1 路径参数

参数

是否必选

类型

说明

project_id

String

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

graph_name

String

图名称。

请求参数

表2 Body参数说明

参数

是否必选

类型

说明

indexName

String

索引名称。只能包含字母,数字,-和_。不能包含其他字符。索引名称的长度需在63字符以内。

indexType

String

索引的类型,区分大小写。

  • “GlobalCompositeVertexIndex”为全局的Composite类型的点索引。
  • “GlobalCompositeEdgeIndex”为全局的Composite类型的边索引。
  • “CompositeVertexIndex”为局部的Composite类型的点索引。
  • “CompositeEdgeIndex”为局部的Composite类型的边索引。
  • “FullTextIndex”为全文索引。

hasLabel

Boolean

是否有label,默认为false。

  • true
  • false

indexLabel

List

Label列表,仅在indexType为CompositeVertexIndex或CompositeEdgeIndex时有效,而且为必填项,用来指定在哪些label上建立索引。

indexProperty

否(若hasLabel为false或null,则该项为必选)

List

索引的属性列表。

可以创建索引的属性类型有: integer、 float、 double、 long、 enum、 string、 date。

  • 如果属性类型为string,属性长度建议不要超过40个字节,超出的部分会被截断。
  • Cypher查询可以借助hasLabel为True的索引来加速。
    • indexProperty为空时,建立的索引为label索引,可以加速label过滤。
    • indexProperty不为空时,建立的索引为属性索引,可以加速对应的属性过滤。

响应参数

表3 响应Body参数说明

参数

类型

说明

errorMessage

String

系统提示信息。

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

errorCode

String

系统提示信息。

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

jobId

String

执行该异步任务的jobId。

说明:

可以查询jobId查看任务执行状态、获取返回结果,详情参考Job管理API

jobType

String

执行该异步任务的jobType。

result

String

成功时result值为success。

请求示例

创建复合索引,索引名称为ageIndex,索引类型为全局点索引。
POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/indices
{
    "indexName":"ageIndex",
    "indexType": "GlobalCompositeVertexIndex",
    "hasLabel": true,
    "indexProperty": ["age"]
}

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

响应示例

状态码: 200

成功响应示例

Http Status Code: 200
{
"jobId": "f99f60f1-bba6-4cde-bd1a-ff4bdd1fd500000168232",
"jobType": 8
}

状态码: 400

失败响应示例

Http Status Code: 400
{
  "errorMessage": "graph [demo] is not found",
  "errorCode": "GES.8603"
}

状态码

返回值

说明

400 Bad Request

请求错误。

401 Unauthorized

鉴权失败。

403 Forbidden

没有操作权限。

404 Not Found

找不到资源。

500 Internal Server Error

服务内部错误。

503 Service Unavailable

服务不可用。

错误码

请参见错误码