跨多个服务器分发 Neo4j 图形

Distributing a Neo4j Graph Across Multiple Servers

是否可以跨多个服务器分布 Neo4j 图,其中服务器 1 上的顶点 A 与服务器 2 上的顶点 B 有边连接?

到目前为止,我能找到的所有内容都是关于 Neo4j 分片的讨论,但我找不到任何地方明确指出边缘可以跨越服务器。

不,关系无法连接不同服务器上的节点。

如果存在这样的功能,它将显着比将所有数据放在一起的速度慢,而且查询失败率也会更高(由于超时和丢弃等原因连接)。

FWIW,资源描述框架 (RDF) 图模型 [1] 本机支持此类功能。您可以使用 SPARQL 1.1 查询语言的联合查询功能跨多个 RDF 存储查询数据集。

使用包含英超联赛(英式足球)俱乐部信息的本地数据集并将此数据与可公开访问的 RDF 存储 (DBpedia) 相结合的示例:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX soccer: <http://www.example.com/soccer#>

SELECT distinct ?nickName ?airportName ?cityName ?airportID {
    
    ?soccerTeam dbo:city ?city .
    ?soccerTeam soccer:nickname ?nickName .
    
    SERVICE <http://dbpedia.org/sparql> {
        
        BIND ("LHR" as ?airportID) 
        
        ?airport dbo:iataLocationIdentifier ?airportID ;
                 dbo:city ?city ;
                 rdfs:label ?airportName .
        ?city rdfs:label ?cityName .

SPARQL 中的 SERVICE 子句可用于提供这种联合方式。

RDF 是否适合您取决于您​​需要对图提出的查询类型。 属性 图形数据库和查询语言通常更擅长检索遍历路径(开始和结束之间的所有对象)。 SPARQL 可以迭代遍历[2],但它可以non-trivial 来表示检索遍历的所有中间组件的查询。

[1] https://www.w3.org/RDF/ [2] https://www.w3.org/TR/sparql11-property-paths/