1

是否可以在服务器 1 上的顶点 A 与服务器 2 上的顶点 B 边连接的多个服务器上分发 Neo4j 图?

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

4

2 回答 2

0

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],但是表达一个检索遍历的所有中间组件的查询可能并非易事。

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

于 2020-11-06T12:57:13.617 回答
0

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

如果存在这样的能力,它将比将所有数据放在一起要得多,并且还会遭受更高的查询失败率(由于超时和连接断开等原因)。

于 2020-11-04T23:56:51.153 回答