新建索引
功能介绍
根据给定的indexName,IndexType等信息创建索引。目前支持两种索引:复合索引和全文索引。
- 复合索引有全局点索引(GlobalCompositeVertexIndex),全局边索引(GlobalCompositeEdgeIndex)以及局部点索引(CompositeVertexIndex),和局部边索引(CompositeEdgeIndex)。复合索引是针对固定组合的属性建立的,其中局部索引可以在指定的label上建立索引。而全局索引复合索引不需要指定label,只要某个label包含指定属性,就会自动在此label上建立索引。使用索引查询可以加快速度。
- 全文索引(FullTextIndex)可以实现全文搜索、模糊搜索等功能。由于全文索引的刷新机制,更新数据后立即查询可能查到的是旧数据,建议更新后间隔60秒以上再进行查询。全文索引的使用请查看点过滤查询和边过滤查询。您也可以使用cypher语句来执行全文索引,具体请查看cypher操作相关章节。

- 目前全文索引特性只在持久化版规格版本中支持。
- 索引创建后需要等待30秒索引同步时间,同步完成后Cypher查询才可以利用索引进行加速。
索引特性对比
特性 | 模糊查询 | 速度 | 灵活度 |
|---|---|---|---|
复合索引 | 不支持 | 快速 | 仅限于固定组合属性键。 |
全文索引 | 支持 | 比复合慢 | 可以任意组合属性键。 |
URI
参数 | 是否必选 | 类型 | 说明 |
|---|---|---|---|
project_id | 是 | String | 参数解释: 项目编号。获取方法,请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母和数字组成,且长度为[1-64]个字符。 默认取值: 不涉及。 |
graph_name | 是 | String | 图名称。 |
请求参数
参数 | 是否必选 | 类型 | 说明 |
|---|---|---|---|
indexName | 是 | String | 索引名称。只能包含字母,数字,-和_。不能包含其他字符。索引名称的长度需在63字符以内。 说明: |
indexType | 是 | String | 索引的类型,区分大小写。
|
hasLabel | 否 | Boolean | 是否有label,默认为false。
|
indexLabel | 否 | List | Label列表,仅在indexType为CompositeVertexIndex或CompositeEdgeIndex时有效,而且为必填项,用来指定在哪些label上建立索引。 |
indexProperty | 否(若hasLabel为false或null,则该项为必选) | List | 索引的属性列表。 可以创建的属性类型有: integer、 float、 double、 long、 enum、 string、 date。 索引类型为复合类型时,仅支持属性类型为single。 |
strLength | 否 | Integer | String类型的属性在编码索引时会按照一固定长度来截断,strLength用于指定此截断长度。未指定时默认值为40字节,用户可指定范围为[1, 256]。 通常用户不需要手动指定此参数,即使有些属性超过此长度,索引编码时被截断。一般也不会有明显的性能劣化。除非绝大多数属性均超过默认长度,可以考虑适当增大strLength,但是会带来索引修改的性能下降。 |

- 如果属性类型为string,属性长度建议不要超过40个字节,超出的部分会被截断。
- Cypher查询可以借助hasLabel为True的索引来加速。
- indexProperty为空时,建立的索引为label索引,可以加速label过滤。
- indexProperty不为空时,建立的索引为属性索引,可以加速对应的属性过滤。
响应参数
参数 | 类型 | 说明 |
|---|---|---|
errorMessage | String | 系统提示信息。
|
errorCode | String | 系统提示信息。
|
jobId | String | 执行该异步任务的jobId。 说明: 可以查询jobId查看任务执行状态、获取返回结果,详情参考Job管理API。 |
jobType | String | 执行该异步任务的jobType。 |
result | String | 成功时result值为success。 |
请求示例
POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/indices
{
"indexName":"ageIndex",
"indexType": "GlobalCompositeVertexIndex",
"hasLabel": true,
"indexProperty": ["age"]
} 响应示例
状态码: 200
成功响应示例
Http Status Code: 200
{
"jobId": "f99f60f1-bba6-4cde-bd1a-ff4bdd1fd500000168232",
"jobType": 8
} 状态码: 400
失败响应示例
Http Status Code: 400
{
"errorMessage": "Graph [854d9316e71d4dc599c5f27ea323d445-ges_fdb1] does not exist, please check projectId and graphName.",
"errorCode": "GES.8000",
"result": "failed"
} 状态码
返回值 | 说明 |
|---|---|
400 Bad Request | 请求错误。 |
401 Unauthorized | 鉴权失败。 |
403 Forbidden | 没有操作权限。 |
404 Not Found | 找不到资源。 |
500 Internal Server Error | 服务内部错误。 |
503 Service Unavailable | 服务不可用。 |
错误码
请参见错误码。

