新建索引
功能介绍
根据给定的indexName,IndexType等信息创建索引。目前支持两种索引:复合索引和全文索引。
- 复合索引有全局点索引(GlobalCompositeVertexIndex),全局边索引(GlobalCompositeEdgeIndex)以及局部点索引(CompositeVertexIndex),和局部边索引(CompositeEdgeIndex)。复合索引是针对固定组合的属性建立的,其中局部索引可以在指定的label上建立索引。而全局索引复合索引不需要指定label,只要某个label包含指定属性,就会自动在此label上建立索引。使用索引查询可以加快速度。
- 全文索引(FullTextIndex)可以实现全文搜索、模糊搜索等功能。由于全文索引的刷新机制,更新数据后立即查询可能查到的是旧数据,建议更新后间隔一秒以上再进行查询。全文索引的使用请查看点过滤查询和边过滤查询。您也可以使用cypher语句来执行全文索引,具体请查看cypher操作相关章节。
- 目前全文索引特性只在持久化版规格版本中支持。
- 索引创建后需要等待30秒索引同步时间,同步完成后Cypher查询才可以利用索引进行加速。
索引特性对比
特性 |
模糊查询 |
速度 |
灵活度 |
---|---|---|---|
复合索引 |
不支持 |
快速 |
仅限于固定组合属性键。 |
全文索引 |
支持 |
比复合慢 |
可以任意组合属性键。 |
URI
参数 |
是否必选 |
类型 |
说明 |
---|---|---|---|
project_id |
是 |
String |
项目ID。获取方法请参见获取项目ID。 |
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。 |
- 如果属性类型为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"] }
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 |
服务不可用。 |
错误码
请参见错误码。