public interface Graph
限定符和类型 | 方法和说明 |
---|---|
Set<Integer> |
affinities()
获取集群中所有affinity。
|
int |
affinity(long elementId)
获取点VertexId所在的主机号。
|
<V> Collection<V> |
broadcastCallable(Collection<Integer> affinities,
GraphBroadcastCallable<V> callable)
带返回值的广播任务。
|
default <V> Collection<V> |
broadcastCallable(GraphBroadcastCallable<V> callable)
带返回值的广播任务。
|
void |
broadcastRunnable(Collection<Integer> affinities,
GraphBroadcastRunnable runnable)
不带返回值的广播任务。
|
default void |
broadcastRunnable(GraphBroadcastRunnable runnable)
不带返回值的广播任务。
|
void |
deleteEdge(String edgeId)
删除边
|
void |
deleteVertex(long vertexId)
删除点以及所有与点相关的边
|
void |
deleteVertex(long vertexId,
boolean isDeleteEdge)
删除点
|
default long |
edgeIteratorFast(Consumer<Edge> consumer)
多线程迭代本地边
|
default long |
edgeIteratorFast(Consumer<Edge> consumer,
Set<Integer> types)
多线程迭代本地边
|
long |
edgeIteratorFast(Consumer<Edge> consumer,
Set<Integer> types,
boolean backup)
多线程迭代本地边
|
int |
edgeTypeIndex(String edgeId)
通过边EdgeId获取边类型index
|
default <CONFIG extends com.graphdbapi.pregel.GraphPregelConfig> |
executePregel(CONFIG config,
com.graphdbapi.pregel.GraphPregelComputation<CONFIG> computation)
执行分布式 pregel 任务
|
void |
flushData()
手动触发写盘
|
long |
getAllEdgeCount()
查询集群总边数
|
long |
getAllVertexCount()
查询集群总点数
|
long |
getEdgeCount(boolean isLocal)
查询边数量
|
long |
getEdgeCount(int edgeTypeIndex)
查询集群指定边类型总数
|
long |
getEdgeCount(int typeIndex,
boolean isLocal)
查询指定边类型数量
|
String |
getGraphName()
查询图名称
|
GraphDbAtomicLong |
getOrCreateGraphDbAtomicLong(String name,
long initValue)
创建一个分布式 AtomicLong
|
String |
getPk(long vertexId)
根据VertexId来查询对应点的外部唯一标识值
|
long |
getSnowId()
返回 Cypher 任务 id
|
long |
getVertexCount(boolean isLocal)
查询点数量
|
long |
getVertexCount(int vertexTypeIndex)
查询集群指定点类型总数
|
long |
getVertexCount(int typeIndex,
boolean isLocal)
查询指定点类型数量
|
Map<Long,Vertex> |
getVertexes(Collection<Long> ids)
批量查询点
|
Set<Long> |
getVertexIdByPk(String pk)
根据外部唯一标识查询点VertexId
|
Long |
getVertexIdByPk(String pk,
int typeIndex)
根据外部唯一标识和点类型index查询点VertexId
|
Long |
getVertexIdByPk(String pk,
String type)
根据外部唯一标识和点类型名查询点VertexId。
|
Set<Long> |
getVertexIdByPkCompatible(String pk)
根据外部唯一标识查询点VertexId
|
Long |
getVertexIdByPkCompatible(String pk,
int typeIndex)
根据外部唯一标识和点类型index查询点VertexId
|
Long |
getVertexIdByPkCompatible(String pk,
String type)
根据外部唯一标识和点类型名查询点VertexId。
|
boolean |
hasVertex(long id)
根据点VertexId判断点是否存在
|
Edge |
insertEdgeByVertexId(long fromId,
long toId,
int typeIndex,
Map<String,Object> propertyMap)
添加边
|
Vertex |
insertVertexByPk(String pk,
int typeIndex,
Map<String,Object> propertyMap)
添加点
|
boolean |
isStop()
返回布尔值用于停止plugin任务
|
int |
localAffinity()
获取本机的affinity。
|
GraphSchema |
meta()
查询图的meta信息
|
default void |
putPropertyValue(long vertexId,
String propertyName,
Object data)
为点添加属性
|
void |
putPropertyValue(long vertexId,
String propertyName,
Object data,
boolean isMerge)
为点添加属性
|
default void |
putPropertyValue(String edgeId,
String propertyName,
Object data)
为边添加属性
|
void |
putPropertyValue(String edgeId,
String propertyName,
Object data,
boolean isMerge)
为边添加属性
|
boolean |
removePropertyValue(long vertexId)
删除点VertexId的所有属性,除外部唯一标识值
|
boolean |
removePropertyValue(long vertexId,
String propertyName)
删除点VertexId的属性
|
boolean |
removePropertyValue(String edgeId)
删除边EdgeId的所有属性,除combineKey
|
boolean |
removePropertyValue(String edgeId,
String propertyName)
删除边EdgeId的属性
|
default GraphAutoCloseableIterator<Edge> |
retrieveAllEdges()
查询集群所有边
|
GraphAutoCloseableIterator<Edge> |
retrieveAllEdges(Set<Integer> edgeTypes,
Predicate<Edge> pe)
查询带条件过滤的集群所有边
|
default GraphAutoCloseableIterator<Vertex> |
retrieveAllVertexes()
查询集群所有点
|
GraphAutoCloseableIterator<Vertex> |
retrieveAllVertexes(Set<Integer> vertexTypes,
Predicate<Vertex> pv)
查询带条件过滤的集群所有点
|
Edge |
retrieveEdge(String edgeId)
查询边
|
default List<Edge> |
retrieveEdgeByVertexId(long vertexId)
找边。
|
List<Edge> |
retrieveEdgeByVertexId(long srcId,
long dstId,
Set<Integer> edgeTypeFilter,
Direction direction,
int limit,
Predicate<Element> pe)
找边。
|
List<Edge> |
retrieveEdgeByVertexId(long vertexId,
Set<Integer> edgeTypeFilter,
Direction direction,
int neighborLimit,
int edgeLimit,
Predicate<Element> pv,
Predicate<Element> pe,
boolean includeLoop)
找边
|
Iterator<Edge> |
retrieveEdgeByVertexId(long vertexId,
Set<Integer> edgeTypeFilter,
Direction direction,
int neighborLimit,
int edgeLimit,
Predicate<Element> pv,
Predicate<Element> pe,
boolean includeLoop,
boolean onlyLoop,
boolean includeProps)
找边。
|
List<Edge> |
retrieveEdgeByVertexIdForAlgo(long vertexId,
Set<Integer> edgeTypeFilter,
Direction direction,
int neighborLimit,
int edgeLimit,
Predicate<Element> pv,
Predicate<Element> pe,
boolean includeLoop)
根据VertexId查边
|
Iterator<Edge> |
retrieveEdgeByVertexIdForAlgo(long vertexId,
Set<Integer> edgeTypeFilter,
Direction direction,
int neighborLimit,
int edgeLimit,
Predicate<Element> pv,
Predicate<Element> pe,
boolean includeLoop,
boolean onlyLoop,
boolean includeProps)
根据VertexId查边
|
List<Edge> |
retrieveEdgeByVertexIdNoProps(long vertexId,
Set<Integer> edgeTypeFilter,
Direction direction,
int neighborLimit,
int edgeLimit,
Predicate<Element> pv,
Predicate<Element> pe,
boolean includeLoop)
找边。
|
Edge |
retrieveEdgeCompatible(String edgeId)
查询边
|
default Iterator<Edge> |
retrieveLocalEdges()
查询本机所有边
|
Iterator<Edge> |
retrieveLocalEdges(Set<Integer> edgeTypes,
Predicate<Edge> pe)
查询带条件过滤的本机所有边
|
default Iterator<Vertex> |
retrieveLocalVertexes()
查询本机所有点
|
Iterator<Vertex> |
retrieveLocalVertexes(Set<Integer> vertexTypes,
Predicate<Vertex> pv)
查询带条件过滤的本机所有点
|
Iterator<Long> |
retrieveNeighborIdIterator(long vertexId,
Direction direction,
Set<Integer> types)
获取邻居ElementId
|
List<Edge> |
retrieveOrInsertEdge(long fromId,
long toId,
int typeIndex,
Map<String,Object> propertyMap)
查询或插入边。
|
Vertex |
retrieveOrInsertVertex(String pk,
int typeIndex,
Map<String,Object> propertyMap)
查询或插入点。
|
Vertex |
retrieveVertex(long vertexId)
查询点。
|
Vertex |
retrieveVertexByPk(String pk,
int typeIndex)
查询点。
|
Vertex |
retrieveVertexByPkCompatible(String pk,
int typeIndex)
查询点。
|
Vertex |
retrieveVertexCompatible(long vertexId)
查询点。
|
GraphAutoCloseableIterator<String> |
searchEdgesByIndex(String typeName,
String propName,
Object data,
int skip,
int limit)
通过索引,查找边数据,返回边Id
|
GraphAutoCloseableIterator<Long> |
searchVertexesByIndex(String typeName,
String propName,
Object data,
int skip,
int limit)
通过索引,查找点数据,返回点Id
|
default Edge |
updateEdge(String edgeId,
Map<String,Object> propertyMap)
更新边的多个属性
|
Edge |
updateEdge(String edgeId,
Map<String,Object> propertyMap,
boolean isMerge)
更新边的多个属性
|
default Vertex |
updateVertex(long vertexId,
Map<String,Object> propertyMap)
更新点的多个属性
|
Vertex |
updateVertex(long vertexId,
Map<String,Object> propertyMap,
boolean isMerge)
更新点的多个属性
|
default List<Edge> |
upsertEdge(long fromId,
long toId,
int typeIndex,
Map<String,Object> propertyMap)
插入或更新边。
|
List<Edge> |
upsertEdge(long fromId,
long toId,
int typeIndex,
Map<String,Object> propertyMap,
boolean isMerge)
插入或更新边。
|
default Vertex |
upsertVertex(String pk,
int typeIndex,
Map<String,Object> propertyMap)
插入或更新点。
|
Vertex |
upsertVertex(String pk,
int typeIndex,
Map<String,Object> propertyMap,
boolean isMerge)
插入或更新点。
|
default long |
vertexIteratorFast(Consumer<Vertex> consumer)
多线程迭代本地点
|
default long |
vertexIteratorFast(Consumer<Vertex> consumer,
Set<Integer> types)
多线程迭代本地点
|
long |
vertexIteratorFast(Consumer<Vertex> consumer,
Set<Integer> types,
boolean backup)
多线程迭代本地点
|
int |
vertexTypeIndex(long vertexId)
通过点VertexId获取点类型Index
|
GraphSchema meta()
GraphSchema
String getGraphName()
long getAllVertexCount()
long getAllEdgeCount()
long getVertexCount(int vertexTypeIndex)
vertexTypeIndex
- 点类型indexlong getEdgeCount(int edgeTypeIndex)
edgeTypeIndex
- 边类型indexlong getVertexCount(boolean isLocal)
isLocal
- 是否只取本地的点数量。true本地点数,false集群总点数long getEdgeCount(boolean isLocal)
isLocal
- 是否只取本地的边数量。true本地边数,false集群总边数long getVertexCount(int typeIndex, boolean isLocal)
typeIndex
- 点类型indexisLocal
- 是否只取本节点数量。true本机数量,false集群总数量long getEdgeCount(int typeIndex, boolean isLocal)
typeIndex
- 边类型indexisLocal
- 是否只取本节点数量。true本机数量,false集群总数量boolean hasVertex(long id)
id
- VertexIdSet<Long> getVertexIdByPk(String pk)
pk
- 外部唯一标识Set<Long> getVertexIdByPkCompatible(String pk)
pk
- 外部唯一标识Long getVertexIdByPk(String pk, int typeIndex)
pk
- 外部唯一标识typeIndex
- 点类型indexLong getVertexIdByPkCompatible(String pk, int typeIndex)
pk
- 外部唯一标识typeIndex
- 点类型indexLong getVertexIdByPk(String pk, String type)
pk
- 外部唯一标识type
- 点类型名Long getVertexIdByPkCompatible(String pk, String type)
pk
- 外部唯一标识type
- 点类型名Vertex retrieveVertexByPk(String pk, int typeIndex)
pk
- 外部唯一标识值typeIndex
- 点类型indexVertex retrieveVertexByPkCompatible(String pk, int typeIndex)
pk
- 外部唯一标识值typeIndex
- 点类型indexVertex retrieveVertex(long vertexId)
vertexId
- 点VertexIdVertex retrieveVertexCompatible(long vertexId)
vertexId
- 点VertexIdMap<Long,Vertex> getVertexes(Collection<Long> ids)
ids
- 点VertexId列表Edge retrieveEdge(String edgeId)
edgeId
- 边EdgeIdEdge retrieveEdgeCompatible(String edgeId)
edgeId
- 边EdgeIdList<Edge> retrieveEdgeByVertexId(long srcId, long dstId, Set<Integer> edgeTypeFilter, Direction direction, int limit, Predicate<Element> pe)
srcId
- 起始点VertexIddstId
- 终止点VertexIdedgeTypeFilter
- 边类型过滤direction
- 边方向pe
- 边条件limit
- 边个数限制default List<Edge> retrieveEdgeByVertexId(long vertexId)
vertexId
- 点VertexIdIterator<Edge> retrieveEdgeByVertexId(long vertexId, Set<Integer> edgeTypeFilter, Direction direction, int neighborLimit, int edgeLimit, Predicate<Element> pv, Predicate<Element> pe, boolean includeLoop, boolean onlyLoop, boolean includeProps)
vertexId
- 点VertexIdedgeTypeFilter
- 边类型过滤direction
- 边方向pe
- 边条件pv
- 点条件neighborLimit
- 邻居点个数上限edgeLimit
- 邻居边数上限includeLoop
- 是否返回包含环路的边onlyLoop
- 是否只返回环路边includeProps
- 边是否要返回属性Iterator<Edge> retrieveEdgeByVertexIdForAlgo(long vertexId, Set<Integer> edgeTypeFilter, Direction direction, int neighborLimit, int edgeLimit, Predicate<Element> pv, Predicate<Element> pe, boolean includeLoop, boolean onlyLoop, boolean includeProps)
vertexId
- 点idedgeTypeFilter
- 过滤的边类型direction
- 边方向neighborLimit
- 邻居点个数上限edgeLimit
- 邻居边数上限pv
- 点条件pe
- 边条件includeLoop
- 是否返回包含环路的边onlyLoop
- 是否只返回环路边includeProps
- 边是否要返回属性List<Edge> retrieveEdgeByVertexId(long vertexId, Set<Integer> edgeTypeFilter, Direction direction, int neighborLimit, int edgeLimit, Predicate<Element> pv, Predicate<Element> pe, boolean includeLoop)
vertexId
- 点VertexIdedgeTypeFilter
- 边条件direction
- 边方向neighborLimit
- 邻居点上限, 填小于0 不参与计算edgeLimit
- 邻居边上限,填小于0 不参与计算pv
- 点条件pe
- 边条件includeLoop
- 是否包含环路边List<Edge> retrieveEdgeByVertexIdForAlgo(long vertexId, Set<Integer> edgeTypeFilter, Direction direction, int neighborLimit, int edgeLimit, Predicate<Element> pv, Predicate<Element> pe, boolean includeLoop)
vertexId
- 点idedgeTypeFilter
- 过滤的边类型direction
- 边方向neighborLimit
- 邻居点个数上限edgeLimit
- 邻居边数上限pv
- 点条件pe
- 边条件includeLoop
- 是否返回包含环路的边List<Edge> retrieveEdgeByVertexIdNoProps(long vertexId, Set<Integer> edgeTypeFilter, Direction direction, int neighborLimit, int edgeLimit, Predicate<Element> pv, Predicate<Element> pe, boolean includeLoop)
vertexId
- 点VertexIdedgeTypeFilter
- 边条件direction
- 边方向neighborLimit
- 邻居点上限, 填小于0 不参与计算edgeLimit
- 邻居边上限,填小于0 不参与计算pv
- 点条件pe
- 边条件includeLoop
- 是否包含环路边Iterator<Long> retrieveNeighborIdIterator(long vertexId, Direction direction, Set<Integer> types)
vertexId
- 点Iddirection
- 方向types
- 边类型String getPk(long vertexId)
vertexId
- 点VertexIddefault GraphAutoCloseableIterator<Vertex> retrieveAllVertexes()
GraphAutoCloseableIterator<Vertex> retrieveAllVertexes(Set<Integer> vertexTypes, Predicate<Vertex> pv)
vertexTypes
- 点类型过滤pv
- 点条件过滤Iterator<Vertex> retrieveLocalVertexes(Set<Integer> vertexTypes, Predicate<Vertex> pv)
vertexTypes
- 点类型index集合pv
- 点过滤default GraphAutoCloseableIterator<Edge> retrieveAllEdges()
GraphAutoCloseableIterator<Edge> retrieveAllEdges(Set<Integer> edgeTypes, Predicate<Edge> pe)
edgeTypes
- 边类型index集合pe
- 边过滤Iterator<Edge> retrieveLocalEdges(Set<Integer> edgeTypes, Predicate<Edge> pe)
edgeTypes
- 边类型index集合pe
- 边过滤default long vertexIteratorFast(Consumer<Vertex> consumer)
consumer
- consumer实现需要保证线程安全default long vertexIteratorFast(Consumer<Vertex> consumer, Set<Integer> types)
consumer
- consumer实现需要保证线程安全types
- 需要迭代的点类型long vertexIteratorFast(Consumer<Vertex> consumer, Set<Integer> types, boolean backup)
consumer
- consumer实现需要保证线程安全types
- 需要迭代的点类型backup
- 是否迭代backup数据default long edgeIteratorFast(Consumer<Edge> consumer)
consumer
- consumer实现需要保证线程安全default long edgeIteratorFast(Consumer<Edge> consumer, Set<Integer> types)
consumer
- consumer实现需要保证线程安全types
- 需要迭代的边类型long edgeIteratorFast(Consumer<Edge> consumer, Set<Integer> types, boolean backup)
consumer
- consumer实现需要保证线程安全types
- 需要迭代的边类型backup
- 是否迭代backup数据default void putPropertyValue(long vertexId, String propertyName, Object data)
vertexId
- 点VertexIdpropertyName
- 属性名data
- 属性值void putPropertyValue(long vertexId, String propertyName, Object data, boolean isMerge)
vertexId
- 点VertexIdpropertyName
- 属性名data
- 属性值isMerge
- 集合属性追加或覆盖default void putPropertyValue(String edgeId, String propertyName, Object data)
edgeId
- 边EdgeIdpropertyName
- 属性名data
- 属性值void putPropertyValue(String edgeId, String propertyName, Object data, boolean isMerge)
edgeId
- 边EdgeIdpropertyName
- 属性名data
- 属性值isMerge
- 集合属性追加或覆盖Vertex insertVertexByPk(String pk, int typeIndex, Map<String,Object> propertyMap)
pk
- 外部唯一标识值typeIndex
- 点类型indexpropertyMap
- {propertyName, Object} 属性列表Edge insertEdgeByVertexId(long fromId, long toId, int typeIndex, Map<String,Object> propertyMap)
fromId
- 起始点VertexIdtoId
- 终止点VertexIdtypeIndex
- 边类型indexpropertyMap
- 边属性Vertex retrieveOrInsertVertex(String pk, int typeIndex, Map<String,Object> propertyMap)
pk
- 外部唯一标识typeIndex
- 点类型indexpropertyMap
- 点属性List<Edge> retrieveOrInsertEdge(long fromId, long toId, int typeIndex, Map<String,Object> propertyMap)
fromId
- 起始点VertexIdtoId
- 终止点VertexIdtypeIndex
- 边类型indexpropertyMap
- 边属性default Vertex upsertVertex(String pk, int typeIndex, Map<String,Object> propertyMap)
pk
- 外部唯一标识typeIndex
- 点类型indexpropertyMap
- 点属性Vertex upsertVertex(String pk, int typeIndex, Map<String,Object> propertyMap, boolean isMerge)
pk
- 外部唯一标识typeIndex
- 点类型indexpropertyMap
- 点属性isMerge
- 集合属性追加或覆盖default List<Edge> upsertEdge(long fromId, long toId, int typeIndex, Map<String,Object> propertyMap)
fromId
- 起始点VertexIdtoId
- 终止点VertexIdtypeIndex
- 边类型indexpropertyMap
- 边属性List<Edge> upsertEdge(long fromId, long toId, int typeIndex, Map<String,Object> propertyMap, boolean isMerge)
fromId
- 起始点VertexIdtoId
- 终止点VertexIdtypeIndex
- 边类型indexpropertyMap
- 边属性isMerge
- 集合属性追加或覆盖default Vertex updateVertex(long vertexId, Map<String,Object> propertyMap)
vertexId
- 点VertexIdpropertyMap
- 点属性Vertex updateVertex(long vertexId, Map<String,Object> propertyMap, boolean isMerge)
vertexId
- 点VertexIdpropertyMap
- 点属性isMerge
- 集合属性追加或覆盖default Edge updateEdge(String edgeId, Map<String,Object> propertyMap)
edgeId
- 边EdgeIdpropertyMap
- 边属性Edge updateEdge(String edgeId, Map<String,Object> propertyMap, boolean isMerge)
edgeId
- 边EdgeIdpropertyMap
- 边属性isMerge
- 集合属性追加或覆盖void deleteVertex(long vertexId)
vertexId
- 点VertexIdvoid deleteVertex(long vertexId, boolean isDeleteEdge)
vertexId
- 点VertexIdisDeleteEdge
- true:删除点以及所有与点相关的边。false:若边存在,则会删除失败并抛GraphDbApiException
void deleteEdge(String edgeId)
edgeId
- 边EdgeIdboolean removePropertyValue(long vertexId, String propertyName)
vertexId
- 点VertexIdpropertyName
- 属性名boolean removePropertyValue(String edgeId, String propertyName)
edgeId
- 边EdgeIdpropertyName
- 属性名boolean removePropertyValue(long vertexId)
vertexId
- 点VertexIdboolean removePropertyValue(String edgeId)
edgeId
- 边EdgeIddefault <V> Collection<V> broadcastCallable(GraphBroadcastCallable<V> callable)
V
- 返回值集合callable
- 任务<V> Collection<V> broadcastCallable(Collection<Integer> affinities, GraphBroadcastCallable<V> callable)
V
- 返回值集合affinities
- 节点affinity集合callable
- 任务default void broadcastRunnable(GraphBroadcastRunnable runnable)
runnable
- 任务void broadcastRunnable(Collection<Integer> affinities, GraphBroadcastRunnable runnable)
affinities
- 节点affinity集合runnable
- 任务int affinity(long elementId)
elementId
- 点VertexIdint localAffinity()
int vertexTypeIndex(long vertexId)
vertexId
- 点VertexIdint edgeTypeIndex(String edgeId)
edgeId
- 边EdgeIdlong getSnowId()
void flushData()
GraphDbAtomicLong getOrCreateGraphDbAtomicLong(String name, long initValue)
name。同名将复用
- initValue。初始值
- GraphAutoCloseableIterator<Long> searchVertexesByIndex(String typeName, String propName, Object data, int skip, int limit)
typeName
- 类型名propName
- 属性名data
- 查找值skip
- 跳过limit
- 限制返回数量GraphAutoCloseableIterator<String> searchEdgesByIndex(String typeName, String propName, Object data, int skip, int limit)
typeName
- 类型名propName
- 属性名data
- 查找值skip
- 跳过limit
- 限制返回数量boolean isStop()
default <CONFIG extends com.graphdbapi.pregel.GraphPregelConfig> com.graphdbapi.pregel.GraphPregelResult executePregel(CONFIG config, com.graphdbapi.pregel.GraphPregelComputation<CONFIG> computation)
CONFIG
- GraphPregelConfig类型config
- pregel 配置类computation
- pregel 计算类