public interface Graph extends AutoCloseable
限定符和类型 | 方法和说明 |
---|---|
Edge |
addEdge(long fromId,
long toId,
String type)
添加边。
|
Edge |
addEdge(long fromId,
long toId,
String type,
Map<String,Object> property)
添加边。
|
Edge |
addEdgeByPk(String fromPk,
boolean createFrom,
String toPk,
boolean createTo,
String type,
Map<String,Object> property)
添加边。
|
default Edge |
addEdgeByPk(String fromPk,
String toPk,
String type,
Map<String,Object> property)
添加边。
|
AddEdgeResultInfo |
addEdges(List<AddEdgeInfo> list)
批量添加边。
|
AddEdgeResultInfo |
addEdgesByPk(List<AddEdgeInfo> list)
批量添加边。
|
Vertex |
addVertex(String pk,
String type)
添加点。
|
Vertex |
addVertex(String pk,
String type,
Map<String,Object> property)
添加点。
|
AddVertexResultInfo |
addVertexes(List<AddVertexInfo> list)
批量添加点。
|
QueryResult |
bfsMaster(long startId,
int depth,
int limitNeighbor,
int limitEdge,
List<Direction> dirList,
List<VisitCondition> vertexConditionList,
List<VisitCondition> edgeConditionList,
List<Set<String>> edgeTypeFilterList,
boolean hop,
boolean onlyCount,
boolean returnVertex,
boolean returnEdge)
多度找邻居
|
QueryResult |
bfsMaster(String pk,
String type,
int depth,
int limitNeighbor,
int limitEdge,
List<Direction> dirList,
List<VisitCondition> vertexConditionList,
List<VisitCondition> edgeConditionList,
List<Set<String>> edgeTypeFilterList,
boolean hop,
boolean onlyCount,
boolean returnVertex,
boolean returnEdge)
多度找邻居
|
Set<Long> |
bfsWithResultType(long startId,
int depth,
int limitNeighbor,
int limitEdge,
List<Direction> dirList,
List<VisitCondition> vertexConditionList,
List<VisitCondition> edgeConditionList,
List<Set<String>> edgeTypeFilterList,
Set<String> resultTypeSet)
通过bfs查询,查询满足resultTypeSet的邻居点的 id 集合。
|
void |
clearGraph()
删除图的数据。
|
void |
clearPropertyValue(boolean isVertex,
Object id,
String propName)
删除属性值
|
void |
close()
关闭driver连接
|
void |
createEdgeType(String type,
String fromType,
String toType,
boolean direct,
boolean allowRepeat,
Map<String,PropertyType> classMap)
添加边类型。
|
void |
createProperty(String type,
boolean isVertex,
String propertyName,
boolean isIndex,
PropertyType propertyType)
为某个类型增加属性列
|
void |
createPropIndex(String type,
boolean isVertex,
String property)
为某个类型的某个属性添加简单索引
|
void |
createVertexType(String type,
String pkName,
Map<String,PropertyType> classMap)
添加点类型。
|
void |
deleteEdge(String edgeId)
删除边。
|
void |
deleteEdgeAccurate(String eType,
String pkFrom,
String pkTo,
String propertyName,
String propertyValue)
删除边。
|
void |
deleteEdgeBySrcDst(long fromId,
long toId,
int edgeLimit)
删边。
|
DeleteResultInfo |
deleteEdges(List<DeleteEdgeInfo> list)
批量删除边。
|
void |
deleteGraph()
删除图。
|
void |
deleteVertex(long elementId)
删除点。
|
void |
deleteVertex(String pk,
String type)
删除点。
|
DeleteResultInfo |
deleteVertexes(List<DeleteVertexInfo> list)
批量删除点。
|
void |
dropEdgeType(String type)
删除边类型。
|
void |
dropProperty(String type,
boolean isVertex,
String propertyName)
删除某个类型的某个属性
|
void |
dropPropIndex(String type,
boolean isVertex,
String property)
删除某个类型的某个属性索引
|
void |
dropVertexType(String type)
删除点类型。
|
void |
editDirect(String type,
boolean direct)
更新某个边类型的方向。
|
void |
editPropertyName(String type,
boolean isVertex,
String oldPropName,
String newPropName)
更新某个类型的某个属性名
|
void |
editPropertyValue(boolean isVertex,
Object id,
String propName,
Object value)
设置某个点或边的某属性值
|
void |
editTypeName(String type,
boolean isVertex,
String newType)
更新某个类型名
|
com.galaxybase.driver.v1.StatementResult |
executeCypher(String cypher,
Map<String,com.galaxybase.driver.v1.Value> parameters)
执行 cypher 查询
|
com.galaxybase.driver.v1.StatementResult |
executeQuery(String cypher)
执行 cypher 查询
|
com.galaxybase.driver.v1.StatementResult |
executeQuery(String cypher,
int defLimit)
执行 cypher 查询
|
com.galaxybase.driver.v1.StatementResult |
executeQuery(String cypher,
long timeout)
执行 cypher 查询
|
com.galaxybase.driver.v1.StatementResult |
executeQuery(String cypher,
long timeout,
int defLimit)
执行 cypher 查询
|
long |
getAllEdgeCount()
查询边个数。
|
Iterator<Edge> |
getAllEdges()
查询所有边。
|
long |
getAllVertexCount()
查询点个数。
|
Iterator<Vertex> |
getAllVertexes()
查询所有点。
|
Map<Integer,CypherQuery> |
getCypherMetrics()
查询正在执行的 cypher语句信息
|
default EdgeDegreeInfo |
getDegree(long elementId)
查询点的degree。
|
EdgeDegreeInfo |
getDegree(long elementId,
Set<String> edgeTypeFilter,
Direction direction,
VisitCondition vertexCondition,
VisitCondition edgeCondition,
boolean includeLoop)
查询点的degree。
|
Edge |
getEdgeAccurate(String eType,
String pkFrom,
String pkTo,
String propertyName,
String propertyValue)
查询边。
|
Edge |
getEdgeById(String edgeId)
查询边。
|
long |
getEdgeCount(String type)
查询边个数。
|
boolean |
getEdgeDirect(String type)
查询某个边类型的方向。
|
GetEdgeResultInfo |
getEdges(List<GetEdgeInfo> list)
批量查询边信息,如果不存在,则会返回异常
|
Iterator<Edge> |
getEdgesByType(String type)
查询边类型下所有边。
|
Collection<String> |
getEdgeTypes()
查询所有的边类型名
|
Set<Long> |
getElementId(String pk)
查询点ElementId。
|
Long |
getElementId(String pk,
String type)
查询点ElementId。
|
String |
getFromType(String edgeType)
查询边的起始点类型
|
default Iterator<Edge> |
getNeighbor(long elementId)
查询邻居。
|
Iterator<Edge> |
getNeighbor(long elementId,
Set<String> edgeTypeFilter,
Direction direction,
int limitEdge,
VisitCondition vertexCondition,
VisitCondition edgeCondition,
boolean includeLoop)
查询邻居。
|
default Iterator<Edge> |
getNeighbor(long elementId,
Set<String> edgeTypeFilter,
Direction direction,
VisitCondition vertexCondition,
VisitCondition edgeCondition,
boolean includeLoop)
查询邻居。
|
Iterator<Edge> |
getNeighborBySrcDst(long srcId,
long dstId,
Set<String> edgeTypeFilter,
Direction direction,
VisitCondition edgeCondition,
boolean includeLoop)
查询邻居。
|
Iterator<Edge> |
getOrAddEdge(long fromId,
long toId,
String type,
Map<String,Object> property)
查询或添加边。
|
Vertex |
getOrAddVertex(String pk,
String type,
Map<String,Object> propertyMap)
查询或添加点。
|
Map<String,PropertyType> |
getPropertyKeys(String type,
boolean isVertex)
查询某个点/边类型下的属性名和属性类型
|
String |
getPropertyPk(String type)
查询某个点类型下的外部唯一标识。
|
String |
getToType(String edgeType)
查询边的终止点类型
|
Vertex |
getVertexById(long id)
查询点。
|
Vertex |
getVertexByPk(String pk,
String type)
查询点。
|
long |
getVertexCount(String type)
查询点个数。
|
GetVertexResultInfo |
getVertexes(List<GetVertexInfo> list)
批量查询点信息,如果不存在,则会返回异常
|
Iterator<Vertex> |
getVertexesByType(String type)
查询点类型下的所有点。
|
Collection<String> |
getVertexTypes()
查询所有的点类型名
|
AddEdgeResultInfo |
mergeEdges(List<AddEdgeInfo> list)
创建或更新边。
|
AddEdgeResultInfo |
mergeEdgesByPk(List<AddEdgeInfo> list)
创建或更新边。
|
AddVertexResultInfo |
mergeVertexes(List<AddVertexInfo> list)
批量添加或更新点。
|
String |
name()
查询图名称
|
Iterator<Edge> |
shortestPath(long startId,
long endId,
Set<String> pathEdgeType)
最短路径,返回一条最短路径的所有边
|
void |
stopCypher(int taskId)
停止指定taskId的 cypher语句
|
void |
updateEdge(String edgeId,
Map<String,Object> properties)
更新边。
|
void |
updateEdgeAccurate(String eType,
String pkFrom,
String pkTo,
String propertyName,
String propertyValue,
Map<String,String> propMap)
更新边。
|
void |
updateSortProperty(String typeName,
boolean isVertex,
List<String> sortPropertyList)
更新类型的属性排序
|
void |
updateVertex(long elementId,
Map<String,Object> property)
更新点。
|
void |
updateVertex(String pk,
String type,
Map<String,Object> property)
更新点。
|
Edge addEdge(long fromId, long toId, String type)
fromId
- 起始点ElementIdtoId
- 终止点ElementIdtype
- 边类型Edge
新增边的基础信息ClientException
- 如果边ElementId格式不正确、类型为空DatabaseException
- 如果边类型不存在、起始点和终止点的类型不是作为边类型的起始类型和终止类型Edge addEdge(long fromId, long toId, String type, Map<String,Object> property)
fromId
- 起始点ElementIdtoId
- 终止点ElementIdtype
- 边类型property
- 边属性Edge
新增边的详细信息ClientException
- 如果点ElementId格式不正确、类型为空DatabaseException
- 如果边类型不存在、起始点和终止点的类型不是作为边类型的起始类型和终止类型、
属性名在点类型中没有定义、属性值类型错误Edge addEdgeByPk(String fromPk, boolean createFrom, String toPk, boolean createTo, String type, Map<String,Object> property)
fromPk
- 起始点外部唯一标识。不能为空createFrom
- 填true时,如果点不存在,则添加没有属性的起始点,填false,如果点不存在,则抛异常toPk
- 终止点外部唯一标识。不能为空createTo
- 填true时,如果点不存在,则添加没有属性的终止点。填false,如果点不存在,则抛异常type
- 边类型。不能为空property
- 边属性。可以为空Edge
新增边的详细信息ClientException
- 如果pk和type值为空DatabaseException
- 如果边类型不存在、起始点和终止点的类型不是作为边类型的起始类型和终止类型、
当createFrom和createTo为false时起始点和终止点不存在、
属性名在点类型中没有定义、属性值类型错误default Edge addEdgeByPk(String fromPk, String toPk, String type, Map<String,Object> property)
fromPk
- 起始点外部唯一标识值。不能为空toPk
- 终止点外部唯一标识值。不能为空type
- 边类型。不能为空property
- 边属性。可以为空Edge
新增边的详细信息ClientException
- 如果pk和type值为空DatabaseException
- 如果边类型不存在、起始点和终止点的类型不是作为边类型的起始类型和终止类型、
属性名在点类型中没有定义、属性值类型错误AddEdgeResultInfo addEdges(List<AddEdgeInfo> list)
addEdgesByPk(List)
不同的是,该方法list中每项是通过点ElementId进行添加。
如果想通过外部唯一标识值添加边,请调用addEdgesByPk(List)
list
- 边信息列表AddEdgeResultInfo
新增边列表的结果信息结果集。包含了正确添加以及产生异常的结果集AddEdgeResultInfo addEdgesByPk(List<AddEdgeInfo> list)
addEdges(List)
不同的是,该方法list中每项是通过外部唯一标识值进行添加。
如果想通过点ElementId添加边,请调用addEdges(List)
添加成功,则会在结果集的边列表集合中汇总。添加失败,则会在结果集的异常列表中汇总。list
- 边列表AddEdgeResultInfo
新增边列表的结果信息。包含了正确添加以及产生异常的结果集ClientException
- 如果pk和type值为空Vertex addVertex(String pk, String type)
pk
- 外部唯一标识值。不能为空type
- 点类型。不能为空Vertex
新增点的详细信息ClientException
- 如果pk或type值为空DatabaseException
- 如果点已经存在、点类型在图中不存在Vertex addVertex(String pk, String type, Map<String,Object> property)
pk
- 外部唯一标识值。不能为空type
- 点类型。不能为空property
- 点属性。填null或EmptyMap,代表没有属性值Vertex
新增点的详细信息ClientException
- 如果pk或type值为空DatabaseException
- 如果点已经存在、点类型在图中不存在、属性名在点类型中没有定义、属性值类型错误AddVertexResultInfo addVertexes(List<AddVertexInfo> list)
list
- 点列表AddVertexResultInfo
新增点列表的结果信息,包含添加成功的点详细信息和添加失败的异常信息ClientException
- 如果list参数中某项为null、pkValue或type值为空DatabaseException
- 如果点已存在、点类型在图中不存在、属性名在点类型中没有定义、属性值类型错误QueryResult bfsMaster(long startId, int depth, int limitNeighbor, int limitEdge, List<Direction> dirList, List<VisitCondition> vertexConditionList, List<VisitCondition> edgeConditionList, List<Set<String>> edgeTypeFilterList, boolean hop, boolean onlyCount, boolean returnVertex, boolean returnEdge)
startId
- 起始点depth
- 深度limitNeighbor
- 邻居点上限,填小于0 不参与计算limitEdge
- 邻居边上限,填小于0 不参与计算dirList
- 方向集合,需要size = 1 或者 size = depth,不可为nullvertexConditionList
- 点查询条件集合,需要size = 1 或者 size = depth;填null不参与计算edgeConditionList
- 边查询条件集合,需要size = 1 或者 size = depth;填null不参与计算。如果是边类型过滤,优先使用edgeTypeFilterListedgeTypeFilterList
- 边类型过滤集合,需要size = 1 或者 size = depth;填null不参与计算 以上三个 List 都是和 depth 对应的,如果 size =
1,那么这个过滤条件会被复制,每一度都是这个过滤条件, 如果你只想给某一度添加过滤条件,那么应该在 list 的其他位置 add(null);hop
- 是否 启用hop模式,(只返回最外层的点。)onlyCount
- 是否只返回 count。true表示返回count。returnVertex
- 是否返回结果点集。只有onlyCount为false时生效returnEdge
- 是否返回结果边集。只有onlyCount为false时生效QueryResult
bfs查询结果QueryResult bfsMaster(String pk, String type, int depth, int limitNeighbor, int limitEdge, List<Direction> dirList, List<VisitCondition> vertexConditionList, List<VisitCondition> edgeConditionList, List<Set<String>> edgeTypeFilterList, boolean hop, boolean onlyCount, boolean returnVertex, boolean returnEdge)
pk
- 起始点的外部唯一标识type
- 起始点的类型depth
- 深度limitNeighbor
- 邻居点上限,填小于0 不参与计算limitEdge
- 邻居边上限,填小于0 不参与计算dirList
- 方向集合,需要size = 1 或者 size = depth,不可为nullvertexConditionList
- 点查询条件集合,需要size = 1 或者 size = depth;填null不参与计算edgeConditionList
- 边查询条件集合,需要size = 1 或者 size = depth;填null不参与计算。如果是边类型过滤,优先使用edgeTypeFilterListedgeTypeFilterList
- 边类型过滤集合,需要size = 1 或者 size = depth;填null不参与计算 以上三个 List 都是和 depth 对应的,如果 size =
1,那么这个过滤条件会被复制,每一度都是这个过滤条件, 如果你只想给某一度添加过滤条件,那么应该在 list 的其他位置 add(null);hop
- 是否 启用hop模式,(只返回最外层的点。)onlyCount
- 是否只返回 count。true表示返回count。returnVertex
- 是否返回结果点集。只有onlyCount为false时生效returnEdge
- 是否返回结果边集。只有onlyCount为false时生效QueryResult
bfs查询结果Set<Long> bfsWithResultType(long startId, int depth, int limitNeighbor, int limitEdge, List<Direction> dirList, List<VisitCondition> vertexConditionList, List<VisitCondition> edgeConditionList, List<Set<String>> edgeTypeFilterList, Set<String> resultTypeSet)
startId
- 起始点depth
- 深度limitNeighbor
- 邻居点上限, 填小于0 不参与计算limitEdge
- 邻居边上限,填小于0 不参与计算dirList
- 方向集合,需要size = 1 或者 size = depth,不可为nullvertexConditionList
- 点查询条件集合,需要size = 1 或者 size = depth;填null不参与计算edgeConditionList
- 边查询条件集合,需要size = 1 或者 size = depth;填null不参与计算。如果是边类型过滤,优先使用edgeTypeFilterListedgeTypeFilterList
- 边类型过滤集合,需要size = 1 或者 size = depth;填null不参与计算 以上三个 List 都是和 depth 对应的,如果 size =
1,那么这个过滤条件会被复制,每一度都是这个过滤条件, 如果你只想给某一度添加过滤条件,那么应该在 list 的其他位置 add(null);resultTypeSet
- 最后的结果集中符合条件的点类型void clearGraph()
void clearPropertyValue(boolean isVertex, Object id, String propName)
isVertex
- 点类型填true,边类型填falseid
- 点或边id (点Id 是long类型,边Id 是String 类型,如果isVertex字段和id数据类型不匹配,则通不过验证)propName
- 属性名ClientException
- 如果id为空、id格式错误、属性名为空DatabaseException
- 如果点/边在图中不存在、属性名在对应类型下不存在void close() throws Exception
close
在接口中 AutoCloseable
Exception
- if this resource cannot be closedvoid createEdgeType(String type, String fromType, String toType, boolean direct, boolean allowRepeat, Map<String,PropertyType> classMap)
type
- 边类型名fromType
- 起始点类型名toType
- 终止点类型名direct
- 边的方向allowRepeat
- 是否允许重复classMap
- 属性类型的映射,其中key是属性名,value是属性类型ClientException
- 如果边类型名为空、起始点类型名为空、终止点类型名为空DatabaseException
- 如果类型在图中已存在void createProperty(String type, boolean isVertex, String propertyName, boolean isIndex, PropertyType propertyType)
type
- 类型isVertex
- 点类型填true,边类型填falsepropertyName
- 属性名isIndex
- 是否要加索引。true添加索引,false不添加索引propertyType
- 属性类型。PropertyType
ClientException
- 如果类型为空、属性名为空、属性类型为空DatabaseException
- 如果点/边类型在图中不存在、属性名在对应类型下已存在void createPropIndex(String type, boolean isVertex, String property)
type
- 类型isVertex
- 点类型填true,边类型填falseproperty
- 属性名ClientException
- 如果类型为空、属性名为空DatabaseException
- 如果点/边类型在图中不存在、属性名在对应类型下不存在、索引已存在void createVertexType(String type, String pkName, Map<String,PropertyType> classMap)
type
- 点类型名。不能为空pkName
- 外部唯一标识属性名。不能为空classMap
- 属性类型的映射,其中key是属性名,value是属性类型。可以为空ClientException
- 如果类型为空、外部唯一标识属性名为空、属性名为空、索引中的属性名不存在DatabaseException
- 如果类型在图中已存在void deleteEdge(String edgeId)
edgeId
- 边ElementIdClientException
- 如果边ElementId格式不正确void deleteEdgeAccurate(String eType, String pkFrom, String pkTo, String propertyName, String propertyValue)
eType
- 边类型pkFrom
- 起始点外部唯一标识pkTo
- 终止点外部唯一标识propertyName
- 边的属性名。可以为空propertyValue
- 属性名对应的属性值。如果propertyName参数不为空,则必填void deleteEdgeBySrcDst(long fromId, long toId, int edgeLimit)
fromId
- 起始点idtoId
- 终止点idedgeLimit
- 限制边数DeleteResultInfo deleteEdges(List<DeleteEdgeInfo> list)
list
- 边列表void deleteGraph()
void deleteVertex(long elementId)
elementId
- 点ElementIdClientException
- 如果点ElementId格式错误DatabaseException
- 如果点在图中不存在void deleteVertex(String pk, String type)
pk
- 外部唯一标识值type
- 点的类型ClientException
- 如果pk或type值为空DatabaseException
- 如果点类型不存在、点在图中不存在DeleteResultInfo deleteVertexes(List<DeleteVertexInfo> list)
list
- 点列表void dropEdgeType(String type)
type
- 边类型。不能为空ClientException
- 如果类型为空DatabaseException
- 如果类型在图中不存在void dropProperty(String type, boolean isVertex, String propertyName)
type
- 边类型isVertex
- 点类型填true,边类型填falsepropertyName
- 属性名ClientException
- 如果类型为空、属性名为空、属性类型为空DatabaseException
- 如果点/边类型在图中不存在、属性名在对应类型下不存在void dropPropIndex(String type, boolean isVertex, String property)
type
- 类型isVertex
- 点类型填true,边类型填falseproperty
- 属性名ClientException
- 如果类型为空、属性名为空DatabaseException
- 如果点/边类型在图中不存在、属性名在对应类型下不存在void dropVertexType(String type)
type
- 点类型。不能为空ClientException
- 如果类型为空DatabaseException
- 如果类型在图中不存在void editDirect(String type, boolean direct)
type
- 边类型direct
- 方向ClientException
- 如果类型为空DatabaseException
- 如果边类型在图中不存在void editPropertyName(String type, boolean isVertex, String oldPropName, String newPropName)
type
- 类型isVertex
- 点类型填true,边类型填falseoldPropName
- 原属性名newPropName
- 新属性名ClientException
- 如果类型为空、属性名为空DatabaseException
- 如果点/边类型在图中不存在、原属性名在对应类型下不存在、新属性名在对应类型下已存在void editPropertyValue(boolean isVertex, Object id, String propName, Object value)
isVertex
- 点类型填true,边类型填falseid
- 点或边id (点Id 是long类型,边Id 是String 类型,如果isVertex字段和id数据类型不匹配,则通不过验证)propName
- 属性名value
- 属性值ClientException
- 如果id为空、id格式错误、属性名为空、属性值为空DatabaseException
- 如果点/边在图中不存在、属性名在对应类型下不存在、value类型转换失败void editTypeName(String type, boolean isVertex, String newType)
type
- 类型isVertex
- 点类型填true,边类型填falsenewType
- 新类型名ClientException
- 如果类型为空、属性名为空DatabaseException
- 如果点/边类型在图中不存在,类型名在图中已存在com.galaxybase.driver.v1.StatementResult executeCypher(String cypher, Map<String,com.galaxybase.driver.v1.Value> parameters)
cypher
- 查询语句parameters
- 查询可用的参数StatementResult
cypher执行结果com.galaxybase.driver.v1.StatementResult executeQuery(String cypher)
cypher
- 查询语句StatementResult
cypher执行结果com.galaxybase.driver.v1.StatementResult executeQuery(String cypher, int defLimit)
cypher
- 查询语句defLimit
- 返回结果数限制StatementResult
cypher执行结果com.galaxybase.driver.v1.StatementResult executeQuery(String cypher, long timeout)
cypher
- 查询语句timeout
- 超时时间StatementResult
cypher执行结果com.galaxybase.driver.v1.StatementResult executeQuery(String cypher, long timeout, int defLimit)
cypher
- 查询语句timeout
- 超时时间defLimit
- 返回结果数限制StatementResult
cypher执行结果long getAllEdgeCount()
long getAllVertexCount()
Map<Integer,CypherQuery> getCypherMetrics()
default EdgeDegreeInfo getDegree(long elementId)
elementId
- 起始点ElementIdEdgeDegreeInfo
点的degree信息EdgeDegreeInfo getDegree(long elementId, Set<String> edgeTypeFilter, Direction direction, VisitCondition vertexCondition, VisitCondition edgeCondition, boolean includeLoop)
elementId
- 起始点ElementIdedgeTypeFilter
- 边类型的过滤条件。只会返回满足参数中边类型的边。填null不参与计算。建议类型过滤使用这个字段,而不是edgeConditiondirection
- 边方向vertexCondition
- 点条件,填null不参与计算edgeCondition
- 边条件,填null不参与计算includeLoop
- true计算自环,false不计算自环EdgeDegreeInfo
点的degree信息Edge getEdgeAccurate(String eType, String pkFrom, String pkTo, String propertyName, String propertyValue)
eType
- 边类型pkFrom
- 起始点外部唯一标识pkTo
- 终止点外部唯一标识propertyName
- 边的属性名,可以为空propertyValue
- 属性名对应的属性值。如果propertyName参数不为空,则必填Edge
边的基础信息Edge getEdgeById(String edgeId)
edgeId
- 边ElementIdEdge
边信息。如果找不到边ElementId对应的边,则返回nullClientException
- 如果边ElementId为空、边ElementId格式不正确long getEdgeCount(String type)
type
- 边类型ClientException
- 如果类型为空DatabaseException
- 如果边类型在图中不存在boolean getEdgeDirect(String type)
type
- 边类型ClientException
- 如果类型为空DatabaseException
- 如果类型在图中不存在GetEdgeResultInfo getEdges(List<GetEdgeInfo> list)
list
- 边列表Iterator<Edge> getEdgesByType(String type)
type
- 边类型ClientException
- 如果类型为空DatabaseException
- 如果类型在图中不存在Collection<String> getEdgeTypes()
Set<Long> getElementId(String pk)
pk
- 外部唯一标识值。不能为空ClientException
- 如果pk值为空Long getElementId(String pk, String type)
pk
- 外部唯一标识值。不能为空type
- 点类型。不能为空ClientException
- 如果pk或type为空DatabaseException
- 如果点类型在图中不存在String getFromType(String edgeType)
edgeType
- 给定的边类型名ClientException
- 如果类型为空DatabaseException
- 如果类型在图中不存在default Iterator<Edge> getNeighbor(long elementId)
elementId
- 起始点ElementIdIterator<Edge> getNeighbor(long elementId, Set<String> edgeTypeFilter, Direction direction, int limitEdge, VisitCondition vertexCondition, VisitCondition edgeCondition, boolean includeLoop)
elementId
- 起始点ElementIdedgeTypeFilter
- 边类型的过滤条件。只会返回满足参数中边类型的边。填null不参与计算。建议类型过滤使用这个字段,而不是edgeConditiondirection
- 查询方向limitEdge
- 边个数限制vertexCondition
- 点条件,填null不参与计算edgeCondition
- 边条件,填null不参与计算includeLoop
- true计算自环,false不计算自环default Iterator<Edge> getNeighbor(long elementId, Set<String> edgeTypeFilter, Direction direction, VisitCondition vertexCondition, VisitCondition edgeCondition, boolean includeLoop)
elementId
- 起始点ElementIdedgeTypeFilter
- 边类型的过滤条件。只会返回满足参数中边类型的边。填null不参与计算。建议类型过滤使用这个字段,而不是edgeConditiondirection
- 查询方向vertexCondition
- 点条件,填null不参与计算edgeCondition
- 边条件,填null不参与计算includeLoop
- true计算自环,false不计算自环Iterator<Edge> getNeighborBySrcDst(long srcId, long dstId, Set<String> edgeTypeFilter, Direction direction, VisitCondition edgeCondition, boolean includeLoop)
srcId
- 起始点ElementIddstId
- 终止点ElementIdedgeTypeFilter
- 边类型的过滤条件。只会返回满足参数中边类型的边。填null不参与计算direction
- 方向edgeCondition
- 边条件,填null不参与计算includeLoop
- true计算自环,false不计算自环Iterator<Edge> getOrAddEdge(long fromId, long toId, String type, Map<String,Object> property)
fromId
- 起始点ElementIdtoId
- 终止点ElementIdtype
- 边类型property
- 边属性。填null或EmptyMap时,表示添加的边没有属性值ClientException
- 如果type值为空Vertex getOrAddVertex(String pk, String type, Map<String,Object> propertyMap)
pk
- 外部唯一标识值。不能为空type
- 点类型。不能为空propertyMap
- 点属性。填null或EmptyMap时,表示添加的点没有属性值Vertex
如果新增,则返回增加的点的详细信息。如果是查询,则返回原点的详细信息,属性值不做修改ClientException
- 如果pk或type值为空DatabaseException
- 如果点类型在图中不存在、属性名在点类型中没有定义、属性值类型错误Map<String,PropertyType> getPropertyKeys(String type, boolean isVertex)
type
- 类型。不能为空isVertex
- 点类型为true,边类型为falseClientException
- 如果类型为空DatabaseException
- 如果点/边类型在图中不存在。isVertex需要跟type对应起来。String getPropertyPk(String type)
type
- 类型String
点类型下的外部唯一标识ClientException
- 如果类型为空DatabaseException
- 如果点类型在图中不存在String getToType(String edgeType)
edgeType
- 给定的边类型名ClientException
- 如果类型为空DatabaseException
- 如果类型在图中不存在Vertex getVertexById(long id)
id
- 点ElementIdVertex
点的详细信息。若未找到,则返回nullClientException
- 图数据库中的点ElementId规则,不可能小于0Vertex getVertexByPk(String pk, String type)
pk
- 外部唯一标识值。不能为空type
- 点类型。不能为空Vertex
点的详细信息。若未找到,则返回nullClientException
- 如果pk或type值为空DatabaseException
- 如果点类型在图中不存在long getVertexCount(String type)
type
- 类型ClientException
- 如果类型为空DatabaseException
- 如果点类型在图中不存在GetVertexResultInfo getVertexes(List<GetVertexInfo> list)
list
- 点列表Iterator<Vertex> getVertexesByType(String type)
type
- 点类型ClientException
- 如果type值为空DatabaseException
- 如果点类型不存在Collection<String> getVertexTypes()
AddEdgeResultInfo mergeEdges(List<AddEdgeInfo> list)
list
- 边列表AddEdgeResultInfo
新增或更新的边详细信息结果集。包含了正确添加以及产生异常的结果集AddEdgeResultInfo mergeEdgesByPk(List<AddEdgeInfo> list)
list
- 边列表AddEdgeResultInfo
新增或更新的边详细信息结果集。包含了正确添加以及产生异常的结果集AddVertexResultInfo mergeVertexes(List<AddVertexInfo> list)
list
- 点信息列表AddVertexResultInfo
添加或更新后的点详细信息列表。包含了正确添加以及产生异常的结果集ClientException
- 如果list参数中某项为null、pkValue或type值为空DatabaseException
- 如果点类型在图中不存在、属性名在点类型中没有定义、属性值类型错误Iterator<Edge> shortestPath(long startId, long endId, Set<String> pathEdgeType)
startId
- 起始点ElementIdendId
- 终止点ElementIdpathEdgeType
- 过滤的边类型,填null不参与计算void stopCypher(int taskId)
taskId
- cypher taskIdvoid updateEdge(String edgeId, Map<String,Object> properties)
edgeId
- 边ElementIdproperties
- 需要更新的属性名属性值映射void updateEdgeAccurate(String eType, String pkFrom, String pkTo, String propertyName, String propertyValue, Map<String,String> propMap)
eType
- 边类型pkFrom
- 起始点外部唯一标识pkTo
- 终止点外部唯一标识propertyName
- 边的属性名。可以为空propertyValue
- 属性名对应的属性值。如果propertyName参数不为空,则必填propMap
- 需要更新的属性名属性值映射void updateSortProperty(String typeName, boolean isVertex, List<String> sortPropertyList)
typeName
- 类型名isVertex
- 点类型填true,边类型填falsesortPropertyList
- 属性排序方式。需要包含类型的所有属性,包括外部唯一标识void updateVertex(long elementId, Map<String,Object> property)
elementId
- 点ElementIdproperty
- 需要更新的属性。不能修改点的外部唯一标识值DatabaseException
- 如果点不存在、属性名在点类型中没有定义、属性值类型错误、尝试修改点的外部唯一标识值void updateVertex(String pk, String type, Map<String,Object> property)
pk
- 外部唯一标识值。不能为空type
- 点类型。不能为空property
- 需要更新的属性。不能修改点的外部唯一标识值ClientException
- 如果pk或type值为空DatabaseException
- 如果点不存在、点类型在图中不存在、属性名在点类型中没有定义、属性值类型错误、尝试修改点的外部唯一标识值