Interface Graph

    • Method Detail

      • getGraphName

        java.lang.String getGraphName()
        查询图名称
        Returns:
        图名称
      • getGraphIndex

        int getGraphIndex()
        查询图编号
        Returns:
        图编号
      • getAllVertexCount

        long getAllVertexCount()
        查询集群总点数
        Returns:
        集群总点数
      • getAllEdgeCount

        long getAllEdgeCount()
        查询集群总边数
        Returns:
        总边数
      • getVertexCount

        long getVertexCount​(int vertexTypeIndex)
        查询集群指定点类型总数
        Parameters:
        vertexTypeIndex - 点类型index
        Returns:
        指定点类型总数
      • getEdgeCount

        long getEdgeCount​(int edgeTypeIndex)
        查询集群指定边类型总数
        Parameters:
        edgeTypeIndex - 边类型index
        Returns:
        指定边类型总数
      • getVertexCount

        long getVertexCount​(boolean isLocal)
        查询点数量
        Parameters:
        isLocal - 是否只取本地的点数量。true本地点数,false集群总点数
        Returns:
        点总数
      • getEdgeCount

        long getEdgeCount​(boolean isLocal)
        查询边数量
        Parameters:
        isLocal - 是否只取本地的边数量。true本地边数,false集群总边数
        Returns:
        边总数
      • getVertexCount

        long getVertexCount​(int typeIndex,
                            boolean isLocal)
        查询指定点类型数量
        Parameters:
        typeIndex - 点类型index
        isLocal - 是否只取本节点数量。true本机数量,false集群总数量
        Returns:
        指定点类型总数
      • getEdgeCount

        long getEdgeCount​(int typeIndex,
                          boolean isLocal)
        查询指定边类型数量
        Parameters:
        typeIndex - 边类型index
        isLocal - 是否只取本节点数量。true本机数量,false集群总数量
        Returns:
        指定边类型总数
      • hasVertex

        boolean hasVertex​(long id)
        根据点VertexId判断点是否存在
        Parameters:
        id - VertexId
        Returns:
        true存在,false不存在
      • getVertexIdByPk

        java.util.Set<java.lang.Long> getVertexIdByPk​(java.lang.String pk)
        根据外部唯一标识查询点VertexId
        Parameters:
        pk - 外部唯一标识
        Returns:
        VertexId集合。若找到点,则返回点id集合。若没找到返回PkNotFound异常。
      • getVertexIdByPkCompatible

        java.util.Set<java.lang.Long> getVertexIdByPkCompatible​(java.lang.String pk)
        根据外部唯一标识查询点VertexId
        Parameters:
        pk - 外部唯一标识
        Returns:
        VertexId集合。若找到点,则返回点id集合。若没找到,返回emptySet。
      • getVertexIdByPk

        java.lang.Long getVertexIdByPk​(java.lang.String pk,
                                       int typeIndex)
        根据外部唯一标识和点类型index查询点VertexId
        Parameters:
        pk - 外部唯一标识
        typeIndex - 点类型index
        Returns:
        若找到点,则返回点id。若没找到返回PkNotFound异常。
      • getVertexIdByPkCompatible

        java.lang.Long getVertexIdByPkCompatible​(java.lang.String pk,
                                                 int typeIndex)
        根据外部唯一标识和点类型index查询点VertexId
        Parameters:
        pk - 外部唯一标识
        typeIndex - 点类型index
        Returns:
        若找到点,则返回点id。若没找到,返回null。
      • getVertexIdByPk

        java.lang.Long getVertexIdByPk​(java.lang.String pk,
                                       java.lang.String type)
        根据外部唯一标识和点类型名查询点VertexId。
        Parameters:
        pk - 外部唯一标识
        type - 点类型名
        Returns:
        VertexId 若找到点,则返回点id。若没找到返回PkNotFound异常。
      • getVertexIdByPkCompatible

        java.lang.Long getVertexIdByPkCompatible​(java.lang.String pk,
                                                 java.lang.String type)
        根据外部唯一标识和点类型名查询点VertexId。
        Parameters:
        pk - 外部唯一标识
        type - 点类型名
        Returns:
        VertexId 若找到点,则返回点id。若没找到,返回null。
      • retrieveVertexByPk

        Vertex retrieveVertexByPk​(java.lang.String pk,
                                  int typeIndex)
        查询点。根据外部唯一标识值和点类型index查询点。
        Parameters:
        pk - 外部唯一标识值
        typeIndex - 点类型index
        Returns:
        点信息。如果存在,返回点信息。若没找到返回VertexNotFound异常。
      • retrieveVertexByPkCompatible

        Vertex retrieveVertexByPkCompatible​(java.lang.String pk,
                                            int typeIndex)
        查询点。根据外部唯一标识值和点类型index查询点。
        Parameters:
        pk - 外部唯一标识值
        typeIndex - 点类型index
        Returns:
        点信息。如果存在,返回点信息。如果不存在,返回null。
      • retrieveVertex

        Vertex retrieveVertex​(long vertexId)
        查询点。根据点id查询点。
        Parameters:
        vertexId - 点VertexId
        Returns:
        点信息。如果存在,返回点信息。若没找到返回VertexNotFound异常。
      • retrieveVertexCompatible

        Vertex retrieveVertexCompatible​(long vertexId)
        查询点。根据点id查询点。
        Parameters:
        vertexId - 点VertexId
        Returns:
        点信息。如果存在,返回点信息。如果不存在,返回null。
      • getVertexes

        java.util.Map<java.lang.Long,​Vertex> getVertexes​(java.util.Collection<java.lang.Long> ids)
        批量查询点
        Parameters:
        ids - 点VertexId列表
        Returns:
        查询到的id和点的map映射
      • retrieveEdge

        Edge retrieveEdge​(java.lang.String edgeId)
        查询边
        Parameters:
        edgeId - 边EdgeId
        Returns:
        边信息。如果存在,返回边信息。如果不存在,返回EdgeNotFound异常。
      • retrieveEdgeCompatible

        Edge retrieveEdgeCompatible​(java.lang.String edgeId)
        查询边
        Parameters:
        edgeId - 边EdgeId
        Returns:
        边信息。如果存在,返回边信息。如果不存在,返回null。
      • retrieveEdgeIteratorByVertexId

        ResourceIterator<Edge> retrieveEdgeIteratorByVertexId​(long srcId,
                                                              long dstId,
                                                              java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                              Direction direction,
                                                              int limit,
                                                              java.util.function.Predicate<Element> pe)
        找边。
        Parameters:
        srcId - 起始点VertexId
        dstId - 终止点VertexId
        edgeTypeFilter - 边类型过滤
        direction - 边方向
        pe - 边条件
        limit - 边个数限制
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeIteratorByVertexId

        default ResourceIterator<Edge> retrieveEdgeIteratorByVertexId​(long vertexId)
        找边。无条件,Both方向
        Parameters:
        vertexId - 点VertexId
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeByVertexId

        default ResourceIterator<Edge> retrieveEdgeByVertexId​(long vertexId,
                                                              java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                              Direction direction,
                                                              int neighborLimit,
                                                              int edgeLimit,
                                                              java.util.function.Predicate<Element> pv,
                                                              java.util.function.Predicate<Element> pe,
                                                              boolean includeLoop,
                                                              boolean onlyLoop,
                                                              boolean includeProps)
        找边。通过边迭代获取
        Parameters:
        vertexId - 点VertexId
        edgeTypeFilter - 边类型过滤
        direction - 边方向
        pe - 边条件
        pv - 点条件
        neighborLimit - 邻居点个数上限
        edgeLimit - 邻居边数上限
        includeLoop - 是否返回包含环路的边
        onlyLoop - 是否只返回环路边
        includeProps - 边是否要返回属性
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeByVertexId

        ResourceIterator<Edge> retrieveEdgeByVertexId​(long vertexId,
                                                      java.util.Set<java.lang.Integer> vertexTypeFilter,
                                                      java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                      Direction direction,
                                                      int neighborLimit,
                                                      int edgeLimit,
                                                      java.util.function.Predicate<Element> pv,
                                                      java.util.function.Predicate<Element> pe,
                                                      boolean includeLoop,
                                                      boolean onlyLoop,
                                                      boolean includeProps)
        找边。通过边迭代获取
        Parameters:
        vertexId - 点VertexId
        vertexTypeFilter - 点类型过滤
        edgeTypeFilter - 边类型过滤
        direction - 边方向
        pe - 边条件
        pv - 点条件
        neighborLimit - 邻居点个数上限
        edgeLimit - 邻居边数上限
        includeLoop - 是否返回包含环路的边
        onlyLoop - 是否只返回环路边
        includeProps - 边是否要返回属性
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeByVertexIdForAlgo

        default ResourceIterator<Edge> retrieveEdgeByVertexIdForAlgo​(long vertexId,
                                                                     java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                                     Direction direction,
                                                                     int neighborLimit,
                                                                     int edgeLimit,
                                                                     java.util.function.Predicate<Element> pv,
                                                                     java.util.function.Predicate<Element> pe,
                                                                     boolean includeLoop,
                                                                     boolean onlyLoop,
                                                                     boolean includeProps)
        根据VertexId查边
        Parameters:
        vertexId - 点id
        edgeTypeFilter - 过滤的边类型
        direction - 边方向
        neighborLimit - 邻居点个数上限
        edgeLimit - 邻居边数上限
        pv - 点条件
        pe - 边条件
        includeLoop - 是否返回包含环路的边
        onlyLoop - 是否只返回环路边
        includeProps - 边是否要返回属性
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeByVertexIdForAlgo

        ResourceIterator<Edge> retrieveEdgeByVertexIdForAlgo​(long vertexId,
                                                             java.util.Set<java.lang.Integer> vertexTypeFilter,
                                                             java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                             Direction direction,
                                                             int neighborLimit,
                                                             int edgeLimit,
                                                             java.util.function.Predicate<Element> pv,
                                                             java.util.function.Predicate<Element> pe,
                                                             boolean includeLoop,
                                                             boolean onlyLoop,
                                                             boolean includeProps)
        根据VertexId查边
        Parameters:
        vertexId - 点id
        vertexTypeFilter - 过滤的点类型
        edgeTypeFilter - 过滤的边类型
        direction - 边方向
        neighborLimit - 邻居点个数上限
        edgeLimit - 邻居边数上限
        pv - 点条件
        pe - 边条件
        includeLoop - 是否返回包含环路的边
        onlyLoop - 是否只返回环路边
        includeProps - 边是否要返回属性
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeByVertexIdForAlgo

        ResourceIterator<Edge> retrieveEdgeByVertexIdForAlgo​(long vertexId,
                                                             java.util.Set<java.lang.Integer> vertexTypeFilter,
                                                             java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                             Direction direction,
                                                             int neighborLimit,
                                                             int edgeLimit,
                                                             java.util.function.Predicate<Element> pv,
                                                             java.util.function.Predicate<Element> pe,
                                                             boolean includeLoop,
                                                             boolean onlyLoop,
                                                             boolean includeProps,
                                                             boolean remoteFilter)
        根据VertexId查边
        Parameters:
        vertexId - 点id
        vertexTypeFilter - 过滤的点类型
        edgeTypeFilter - 过滤的边类型
        direction - 边方向
        neighborLimit - 邻居点个数上限
        edgeLimit - 邻居边数上限
        pv - 点条件
        pe - 边条件
        includeLoop - 是否返回包含环路的边
        onlyLoop - 是否只返回环路边
        includeProps - 边是否要返回属性
        remoteFilter - 是否在远端进行过滤
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeByVertexId

        @Deprecated(since="3.5.0")
        java.util.List<Edge> retrieveEdgeByVertexId​(long vertexId,
                                                    java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                    Direction direction,
                                                    int neighborLimit,
                                                    int edgeLimit,
                                                    java.util.function.Predicate<Element> pv,
                                                    java.util.function.Predicate<Element> pe,
                                                    boolean includeLoop)
        Deprecated.
        该方法在遇到超级节点的时候,会大量占用内存,导致系统oom。谨慎使用。推荐使用retrieveEdgeIteratorByVertexId(long, long, java.util.Set<java.lang.Integer>, com.graphdbapi.Direction, int, java.util.function.Predicate<com.graphdbapi.Element>)方法。
        找边
        Parameters:
        vertexId - 点VertexId
        edgeTypeFilter - 边条件
        direction - 边方向
        neighborLimit - 邻居点上限, 填小于0 不参与计算
        edgeLimit - 邻居边上限,填小于0 不参与计算
        pv - 点条件
        pe - 边条件
        includeLoop - 是否包含环路边
        Returns:
        边列表。如果有边,则返回边集合。如果没有边,返回emptyList。如果起始点不存在,返回emptyList。
      • retrieveEdgeIteratorByVertexId

        ResourceIterator<Edge> retrieveEdgeIteratorByVertexId​(long vertexId,
                                                              java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                              Direction direction,
                                                              int neighborLimit,
                                                              int edgeLimit,
                                                              java.util.function.Predicate<Element> pv,
                                                              java.util.function.Predicate<Element> pe,
                                                              boolean includeLoop)
        找边
        Parameters:
        vertexId - 点VertexId
        edgeTypeFilter - 边条件
        direction - 边方向
        neighborLimit - 邻居点上限, 填小于0 不参与计算
        edgeLimit - 邻居边上限,填小于0 不参与计算
        pv - 点条件
        pe - 边条件
        includeLoop - 是否包含环路边
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeIteratorByVertexIdForAlgo

        ResourceIterator<Edge> retrieveEdgeIteratorByVertexIdForAlgo​(long vertexId,
                                                                     java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                                     Direction direction,
                                                                     int neighborLimit,
                                                                     int edgeLimit,
                                                                     java.util.function.Predicate<Element> pv,
                                                                     java.util.function.Predicate<Element> pe,
                                                                     boolean includeLoop)
        根据VertexId查边
        Parameters:
        vertexId - 点id
        edgeTypeFilter - 过滤的边类型
        direction - 边方向
        neighborLimit - 邻居点个数上限
        edgeLimit - 邻居边数上限
        pv - 点条件
        pe - 边条件
        includeLoop - 是否返回包含环路的边
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveEdgeIteratorByVertexIdNoProps

        ResourceIterator<Edge> retrieveEdgeIteratorByVertexIdNoProps​(long vertexId,
                                                                     java.util.Set<java.lang.Integer> edgeTypeFilter,
                                                                     Direction direction,
                                                                     int neighborLimit,
                                                                     int edgeLimit,
                                                                     java.util.function.Predicate<Element> pv,
                                                                     java.util.function.Predicate<Element> pe,
                                                                     boolean includeLoop)
        找边。不返回边属性
        Parameters:
        vertexId - 点VertexId
        edgeTypeFilter - 边条件
        direction - 边方向
        neighborLimit - 邻居点上限, 填小于0 不参与计算
        edgeLimit - 邻居边上限,填小于0 不参与计算
        pv - 点条件
        pe - 边条件
        includeLoop - 是否包含环路边
        Returns:
        边迭代器。使用结束后需调用close方法。
      • retrieveNeighborIdIterator

        ResourceIterator<java.lang.Long> retrieveNeighborIdIterator​(long vertexId,
                                                                    Direction direction,
                                                                    java.util.Set<java.lang.Integer> types)
        获取邻居ElementId
        Parameters:
        vertexId - 点Id
        direction - 方向
        types - 边类型
        Returns:
        邻居ElementId迭代器。使用结束后需调用close方法。
      • getPk

        java.lang.String getPk​(long vertexId)
        根据VertexId来查询对应点的外部唯一标识值
        Parameters:
        vertexId - 点VertexId
        Returns:
        点外部唯一标识值
      • retrieveAllVertexes

        default ResourceIterator<Vertex> retrieveAllVertexes()
        查询集群所有点
        Returns:
        迭代查询集群所有点
      • retrieveAllVertexes

        ResourceIterator<Vertex> retrieveAllVertexes​(java.util.Set<java.lang.Integer> vertexTypes,
                                                     java.util.function.Predicate<Vertex> pv)
        查询带条件过滤的集群所有点
        Parameters:
        vertexTypes - 点类型过滤
        pv - 点条件过滤
        Returns:
        迭代查询带条件过滤的集群所有点
      • retrieveLocalVertexes

        default ResourceIterator<Vertex> retrieveLocalVertexes()
        查询本机所有点
        Returns:
        点迭代器。使用结束后需调用close方法。
      • retrieveLocalVertexes

        ResourceIterator<Vertex> retrieveLocalVertexes​(java.util.Set<java.lang.Integer> vertexTypes,
                                                       java.util.function.Predicate<Vertex> pv)
        查询带条件过滤的本机所有点
        Parameters:
        vertexTypes - 点类型index集合
        pv - 点过滤
        Returns:
        迭代查询带条件过滤的本机所有点迭代器。使用结束后需调用close方法。
      • retrieveAllEdges

        default ResourceIterator<Edge> retrieveAllEdges()
        查询集群所有边
        Returns:
        迭代查询集群所有边
      • retrieveAllEdges

        ResourceIterator<Edge> retrieveAllEdges​(java.util.Set<java.lang.Integer> edgeTypes,
                                                java.util.function.Predicate<Edge> pe)
        查询带条件过滤的集群所有边
        Parameters:
        edgeTypes - 边类型index集合
        pe - 边过滤
        Returns:
        迭代查询带条件过滤的集群所有边
      • retrieveLocalEdges

        default ResourceIterator<Edge> retrieveLocalEdges()
        查询本机所有边
        Returns:
        迭代查询本机所有边迭代器。使用结束后需调用close方法。
      • retrieveLocalEdges

        ResourceIterator<Edge> retrieveLocalEdges​(java.util.Set<java.lang.Integer> edgeTypes,
                                                  java.util.function.Predicate<Edge> pe)
        查询带条件过滤的本机所有边
        Parameters:
        edgeTypes - 边类型index集合
        pe - 边过滤
        Returns:
        迭代查询带条件过滤的本机所有边迭代器。使用结束后需调用close方法。
      • vertexIteratorFast

        default long vertexIteratorFast​(java.util.function.Consumer<Vertex> consumer)
        多线程迭代本地点
        Parameters:
        consumer - consumer实现需要保证线程安全
        Returns:
        迭代过的点数量
      • vertexIteratorFast

        default long vertexIteratorFast​(java.util.function.Consumer<Vertex> consumer,
                                        java.util.Set<java.lang.Integer> types)
        多线程迭代本地点
        Parameters:
        consumer - consumer实现需要保证线程安全
        types - 需要迭代的点类型
        Returns:
        迭代过的点数量
      • vertexIteratorFast

        long vertexIteratorFast​(java.util.function.Consumer<Vertex> consumer,
                                java.util.Set<java.lang.Integer> types,
                                boolean backup)
        多线程迭代本地点
        Parameters:
        consumer - consumer实现需要保证线程安全
        types - 需要迭代的点类型
        backup - 是否迭代backup数据
        Returns:
        迭代过的点数量
      • edgeIteratorFast

        default long edgeIteratorFast​(java.util.function.Consumer<Edge> consumer)
        多线程迭代本地边
        Parameters:
        consumer - consumer实现需要保证线程安全
        Returns:
        迭代过的边数量
      • edgeIteratorFast

        default long edgeIteratorFast​(java.util.function.Consumer<Edge> consumer,
                                      java.util.Set<java.lang.Integer> types)
        多线程迭代本地边
        Parameters:
        consumer - consumer实现需要保证线程安全
        types - 需要迭代的边类型
        Returns:
        迭代过的边数量
      • edgeIteratorFast

        long edgeIteratorFast​(java.util.function.Consumer<Edge> consumer,
                              java.util.Set<java.lang.Integer> types,
                              boolean backup)
        多线程迭代本地边
        Parameters:
        consumer - consumer实现需要保证线程安全
        types - 需要迭代的边类型
        backup - 是否迭代backup数据
        Returns:
        迭代过的边数量
      • putPropertyValue

        default void putPropertyValue​(long vertexId,
                                      java.lang.String propertyName,
                                      java.lang.Object data)
        为点添加属性
        Parameters:
        vertexId - 点VertexId
        propertyName - 属性名
        data - 属性值
      • putPropertyValue

        void putPropertyValue​(long vertexId,
                              java.lang.String propertyName,
                              java.lang.Object data,
                              boolean isMerge)
        为点添加属性
        Parameters:
        vertexId - 点VertexId
        propertyName - 属性名
        data - 属性值
        isMerge - 集合属性追加或覆盖
      • putPropertyValue

        default void putPropertyValue​(java.lang.String edgeId,
                                      java.lang.String propertyName,
                                      java.lang.Object data)
        为边添加属性
        Parameters:
        edgeId - 边EdgeId
        propertyName - 属性名
        data - 属性值
      • putPropertyValue

        void putPropertyValue​(java.lang.String edgeId,
                              java.lang.String propertyName,
                              java.lang.Object data,
                              boolean isMerge)
        为边添加属性
        Parameters:
        edgeId - 边EdgeId
        propertyName - 属性名
        data - 属性值
        isMerge - 集合属性追加或覆盖
      • insertVertexByPk

        Vertex insertVertexByPk​(java.lang.String pk,
                                int typeIndex,
                                java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        添加点
        Parameters:
        pk - 外部唯一标识值
        typeIndex - 点类型index
        propertyMap - {propertyName, Object} 属性列表
        Returns:
        添加成功的点。如果点存在,则抛出异常。如果点不存在,则插入。
      • insertEdgeByVertexId

        Edge insertEdgeByVertexId​(long fromId,
                                  long toId,
                                  int typeIndex,
                                  java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        添加边
        Parameters:
        fromId - 起始点VertexId
        toId - 终止点VertexId
        typeIndex - 边类型index
        propertyMap - 边属性
        Returns:
        添加成功的边
      • retrieveOrInsertVertex

        Vertex retrieveOrInsertVertex​(java.lang.String pk,
                                      int typeIndex,
                                      java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        查询或插入点。
        Parameters:
        pk - 外部唯一标识
        typeIndex - 点类型index
        propertyMap - 点属性
        Returns:
        若点已经存在,仅查询并返回点信息,属性值不做修改。若点不存在,则插入。
      • retrieveOrInsertEdge

        java.util.List<Edge> retrieveOrInsertEdge​(long fromId,
                                                  long toId,
                                                  int typeIndex,
                                                  java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        查询或插入边。
        Parameters:
        fromId - 起始点VertexId
        toId - 终止点VertexId
        typeIndex - 边类型index
        propertyMap - 边属性
        Returns:
        若边已经存在,仅查询并返回边信息,属性值不做修改。若点不存在,则插入。
      • upsertVertex

        default Vertex upsertVertex​(java.lang.String pk,
                                    int typeIndex,
                                    java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        插入或更新点。
        Parameters:
        pk - 外部唯一标识
        typeIndex - 点类型index
        propertyMap - 点属性
        Returns:
        若点已经存在,更新属性值。若点不存在,则插入。
      • upsertVertex

        Vertex upsertVertex​(java.lang.String pk,
                            int typeIndex,
                            java.util.Map<java.lang.String,​java.lang.Object> propertyMap,
                            boolean isMerge)
        插入或更新点。
        Parameters:
        pk - 外部唯一标识
        typeIndex - 点类型index
        propertyMap - 点属性
        isMerge - 集合属性追加或覆盖
        Returns:
        若点已经存在,更新属性值。若点不存在,则插入。
      • upsertEdge

        default java.util.List<Edge> upsertEdge​(long fromId,
                                                long toId,
                                                int typeIndex,
                                                java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        插入或更新边。
        Parameters:
        fromId - 起始点VertexId
        toId - 终止点VertexId
        typeIndex - 边类型index
        propertyMap - 边属性
        Returns:
        若边已经存在,更新属性值。若点不存在,则插入。
      • upsertEdge

        java.util.List<Edge> upsertEdge​(long fromId,
                                        long toId,
                                        int typeIndex,
                                        java.util.Map<java.lang.String,​java.lang.Object> propertyMap,
                                        boolean isMerge)
        插入或更新边。
        Parameters:
        fromId - 起始点VertexId
        toId - 终止点VertexId
        typeIndex - 边类型index
        propertyMap - 边属性
        isMerge - 集合属性追加或覆盖
        Returns:
        若边已经存在,更新属性值。若点不存在,则插入。
      • updateVertex

        default Vertex updateVertex​(long vertexId,
                                    java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        更新点的多个属性
        Parameters:
        vertexId - 点VertexId
        propertyMap - 点属性
        Returns:
        更新成功的点
      • updateVertex

        Vertex updateVertex​(long vertexId,
                            java.util.Map<java.lang.String,​java.lang.Object> propertyMap,
                            boolean isMerge)
        更新点的多个属性
        Parameters:
        vertexId - 点VertexId
        propertyMap - 点属性
        isMerge - 集合属性追加或覆盖
        Returns:
        更新成功的点
      • updateEdge

        default Edge updateEdge​(java.lang.String edgeId,
                                java.util.Map<java.lang.String,​java.lang.Object> propertyMap)
        更新边的多个属性
        Parameters:
        edgeId - 边EdgeId
        propertyMap - 边属性
        Returns:
        更新成功的边
      • updateEdge

        Edge updateEdge​(java.lang.String edgeId,
                        java.util.Map<java.lang.String,​java.lang.Object> propertyMap,
                        boolean isMerge)
        更新边的多个属性
        Parameters:
        edgeId - 边EdgeId
        propertyMap - 边属性
        isMerge - 集合属性追加或覆盖
        Returns:
        更新成功的边
      • deleteVertex

        void deleteVertex​(long vertexId)
        删除点以及所有与点相关的边
        Parameters:
        vertexId - 点VertexId
      • deleteVertex

        void deleteVertex​(long vertexId,
                          boolean isDeleteEdge)
        删除点
        Parameters:
        vertexId - 点VertexId
        isDeleteEdge - true:删除点以及所有与点相关的边。false:若边存在,则会删除失败并抛GraphDbApiException
      • deleteEdge

        void deleteEdge​(java.lang.String edgeId)
        删除边
        Parameters:
        edgeId - 边EdgeId
      • deleteEdges

        java.util.List<Edge> deleteEdges​(long fromId,
                                         long toId,
                                         java.util.Set<java.lang.Integer> edgeTypes,
                                         java.util.function.Predicate<Edge> pe)
        条件删除指定起止点的边
        Parameters:
        fromId - 起始点id
        toId - 终止点id
        edgeTypes - 边类型
        pe - 边过滤条件
        Returns:
        删除的边信息
      • removePropertyValue

        boolean removePropertyValue​(long vertexId,
                                    java.lang.String propertyName)
        删除点VertexId的属性
        Parameters:
        vertexId - 点VertexId
        propertyName - 属性名
        Returns:
        是否成功
      • removePropertyValue

        boolean removePropertyValue​(java.lang.String edgeId,
                                    java.lang.String propertyName)
        删除边EdgeId的属性
        Parameters:
        edgeId - 边EdgeId
        propertyName - 属性名
        Returns:
        是否成功
      • removePropertyValue

        boolean removePropertyValue​(long vertexId)
        删除点VertexId的所有属性,除外部唯一标识值
        Parameters:
        vertexId - 点VertexId
        Returns:
        是否成功
      • removePropertyValue

        boolean removePropertyValue​(java.lang.String edgeId)
        删除边EdgeId的所有属性,除combineKey
        Parameters:
        edgeId - 边EdgeId
        Returns:
        是否成功
      • broadcastCallable

        default <V> java.util.Collection<V> broadcastCallable​(GraphBroadcastCallable<V> callable)
        带返回值的广播任务。将会在所有节点上执行。单机版不可用。
        Parameters:
        callable - 任务
        Returns:
        广播任务的返回值集合
      • broadcastCallable

        <V> java.util.Collection<V> broadcastCallable​(java.util.Collection<java.lang.Integer> affinities,
                                                      GraphBroadcastCallable<V> callable)
        带返回值的广播任务。将会在指定节点上执行。单机版不可用。
        Parameters:
        affinities - 节点affinity集合
        callable - 任务
        Returns:
        广播任务的返回值集合
      • broadcastRunnable

        default void broadcastRunnable​(GraphBroadcastRunnable runnable)
        不带返回值的广播任务。将会在所有节点上执行。单机版不可用。
        Parameters:
        runnable - 任务
      • broadcastRunnable

        void broadcastRunnable​(java.util.Collection<java.lang.Integer> affinities,
                               GraphBroadcastRunnable runnable)
        不带返回值的广播任务。将会在指定节点上执行。单机版不可用。
        Parameters:
        affinities - 节点affinity集合
        runnable - 任务
      • affinity

        @Deprecated
        default int affinity​(long vertexId)
        Deprecated.
        获取点VertexId所在的主机号。单机版默认返回0。
        Parameters:
        vertexId - 点VertexId
        Returns:
        节点号
      • getAffinityById

        int getAffinityById​(long vertexId)
        获取点VertexId所在的主机号。单机版默认返回0。
        Parameters:
        vertexId - 点VertexId
        Returns:
        节点号
      • getAffinityByPk

        int getAffinityByPk​(java.lang.String vertexPk)
        获取当前图点PK所在的主机号。单机版默认返回0。
        Parameters:
        vertexPk - 点VertexPK
        Returns:
        节点号
      • localAffinity

        int localAffinity()
        获取本机的affinity。单机版默认返回0。
        Returns:
        affinity
      • affinities

        java.util.Set<java.lang.Integer> affinities()
        获取集群中所有affinity。单机版默认返回0。
        Returns:
        所有affinity
      • clusterMachineSize

        int clusterMachineSize()
        获取集群节点数量
        Returns:
        集群节点数量
      • vertexTypeIndex

        int vertexTypeIndex​(long vertexId)
        通过点VertexId获取点类型Index
        Parameters:
        vertexId - 点VertexId
        Returns:
        如果会抛出异常或者类型在meta中不存在,是点VertexId不存在或不符合规范。为了性能没有验证是否存在
      • edgeTypeIndex

        int edgeTypeIndex​(java.lang.String edgeId)
        通过边EdgeId获取边类型index
        Parameters:
        edgeId - 边EdgeId
        Returns:
        如果会抛出异常或者类型在meta中不存在,是边EdgeId不存在或不符合规范。为了性能没有验证是否存在
      • getSnowId

        @Deprecated
        default long getSnowId()
        Deprecated.
        返回 Cypher 任务 id
        Returns:
        cypherTaskID
      • getCypherId

        long getCypherId()
        返回 Cypher 任务 id
        Returns:
        cypherId
      • fileObject

        FileObject fileObject()
        获取FileObject对象(资源的释放需要用户管理)
        Returns:
        FileObject
      • logger

        GraphLogger logger()
        获取日志对象
        Returns:
        日志对象
      • flushData

        void flushData()
        手动触发写盘
      • getOrCreateGraphDbAtomicLong

        GraphDbAtomicLong getOrCreateGraphDbAtomicLong​(java.lang.String name,
                                                       long initValue)
        创建一个分布式 AtomicLong
        Parameters:
        name - 。同名将复用
        initValue - 。初始值
        Returns:
        GraphDbAtomicLong
      • searchVertexesByIndex

        ResourceIterator<java.lang.Long> searchVertexesByIndex​(java.lang.String typeName,
                                                               java.lang.String propName,
                                                               java.lang.Object data,
                                                               int skip,
                                                               int limit)
        通过索引,查找点数据,返回点Id
        Parameters:
        typeName - 类型名
        propName - 属性名
        data - 查找值
        skip - 跳过
        limit - 限制返回数量
        Returns:
        点id迭代器
      • searchEdgesByIndex

        ResourceIterator<java.lang.String> searchEdgesByIndex​(java.lang.String typeName,
                                                              java.lang.String propName,
                                                              java.lang.Object data,
                                                              int skip,
                                                              int limit)
        通过索引,查找边数据,返回边Id
        Parameters:
        typeName - 类型名
        propName - 属性名
        data - 查找值
        skip - 跳过
        limit - 限制返回数量
        Returns:
        边id迭代器
      • searchVertexProperty

        ResourceIterator<Vertex> searchVertexProperty​(java.lang.String type,
                                                      java.util.List<com.graphdbapi.search.SearchPredicate> predicates,
                                                      java.util.List<com.graphdbapi.search.SearchOrder> orders,
                                                      int skip,
                                                      int limit)
        通过类型、属性查询点
        Parameters:
        type - 点类型名
        predicates - 查询谓词,每个谓词包括:属性名、查询值
        orders - 属性排序
        skip - 跳过
        limit - 限制返回数量
        Returns:
        点迭代器。使用结束后需调用close方法。
      • searchEdgeProperty

        ResourceIterator<Edge> searchEdgeProperty​(java.lang.String type,
                                                  java.util.List<com.graphdbapi.search.SearchPredicate> predicates,
                                                  java.util.List<com.graphdbapi.search.SearchOrder> orders,
                                                  int skip,
                                                  int limit)
        通过类型、属性查询边
        Parameters:
        type - 边类型名
        predicates - 查询谓词,每个谓词包括:属性名、查询值
        orders - 属性排序
        skip - 跳过
        limit - 限制返回数量
        Returns:
        边迭代器。使用结束后需调用close方法。
      • isStop

        boolean isStop()
        返回布尔值用于停止par任务
        Returns:
        用于判断的布尔值
      • getTaskHandler

        com.graphdbapi.task.TaskHandler getTaskHandler()
        转化 Graph 为图引擎句柄, 用于执行相关图引擎方法.
        Returns:
        图引擎句柄
        Since:
        3.4.4
      • beginTransaction

        Transaction beginTransaction()
        开启一个事务,默认隔离级别为TransactionIsolation.READ_COMMITTED
        Returns:
        事务对象,可以完全当做Graph使用,届时所有方法均以事务方式执行(除不支持事务操作的方法外)
      • beginTransaction

        Transaction beginTransaction​(TransactionIsolation isolation)
        开启一个事务,指定隔离级别
        Parameters:
        isolation - 隔离级别,参考TransactionIsolation
        Returns:
        事务对象,可以完全当做Graph使用,届时所有方法均以事务方式执行(除不支持事务操作的方法外)
      • getDegree

        int getDegree​(long elementId,
                      Direction direction)
        获取邻居的degree大小
        Parameters:
        elementId - 内部Id
        direction - 方向
        Returns:
        degree大小
      • traversalDescription

        com.graphdbapi.traversal.TraversalDescription traversalDescription()
        获取一个TraversalDescription实例对象 该对象不可变,需要通过方法转换成新的实例对象
        Returns:
        TraversalDescription实例对象
      • getMemoryTracker

        com.graphdbapi.memory.GroupMemoryTracker getMemoryTracker​(java.lang.String name)
        Parameters:
        name - 类型名,可以获取的类型为: Algo | Par
        Returns:
        返回对应模块的跟踪器
      • parKit

        com.graphdbapi.parkit.ParKit parKit()
        获取PAR工具实例对象
        Returns:
        PAR工具实例对象
      • extend

        java.util.List<com.graphdbapi.engine.extend.Path> extend​(java.util.Set<java.lang.Long> startIds,
                                                                 java.util.List<com.graphdbapi.engine.extend.ExtendFilter> extendFilters,
                                                                 com.graphdbapi.engine.extend.ExtendLimiter extendLimiter)
        通用路径扩展,采用深度优先搜索的形式。
        Parameters:
        startIds - 起始点列表。
        extendFilters - 扩展过滤器,扩展层数等于过滤器大小extendDepth = extendFilters.size()
        extendLimiter - 扩展全局限制器,填NULL表示不限制。
        Returns:
        扩展出的所有路径。
      • getParallelContext

        com.graphdbapi.engine.parallel.ParallelContext getParallelContext()
        获取并行工具上下文对象。
        Returns:
        并行工具上下文对象。