标签: graph-databases

一键安装 - Dgraph - Gru

我安装了 dgraph gru 进行采访

go get github.com/dgraph-io/gru
cd $GOPATH/src/github.com/dgraph-io/gru
git checkout develop
go build . && ./gru -user=admin -pass=pass -secret=0a45e5eGseF41o0719PJ39KljMK4F4v2
docker run -it -p 127.0.0.1:8088:8080 -p 127.0.0.1:9080:9080 -v ~/dgraph:/dgraph --name dgraph dgraph/dgraph:v0.7.5 dgraph --bindall=true
Run Code Online (Sandbox Code Playgroud)

当我尝试创建测验或问题时出现以下错误

Aug 09 10:14:23  gru[16999]: [negroni] Completed 500 Internal Server Error in 30.001305978s
Aug 09 10:14:24  gru[16999]: [negroni] Completed 500 Internal Server Error in 30.000762875s
Aug 09 10:19:40  gru[16999]: Error while rejecting candidates: Couldn't get response from Dgraph: Post http://localhost:8088/query: dial tcp 127.0.0.1:8088: i/o timeout[negroni] Started …
Run Code Online (Sandbox Code Playgroud)

graph-databases dgraph

3
推荐指数
1
解决办法
176
查看次数

使用 Cypher,如何返回仅包含其属性子集的节点

假设我在 Neo4j 中创建了一个节点:

CREATE (:Thing {a:'foo', b:'bar'})
Run Code Online (Sandbox Code Playgroud)

我可以编写一个查询来获取该节点及其所有属性

MATCH (n:Thing {a:'foo'}) RETURN n
Run Code Online (Sandbox Code Playgroud)

返回

{
  "a": "foo",
  "b": "bar"
}
Run Code Online (Sandbox Code Playgroud)

但是是否有可能匹配一个节点并仅检索其属性的子集,例如,Neo4j 将返回一个仅具有

{
  "b": "bar"
}
Run Code Online (Sandbox Code Playgroud)

(不只是寻找财产,就像您通过 获得的那样RETURN n.b

neo4j graph-databases cypher

3
推荐指数
1
解决办法
1579
查看次数

Graphileon 是只为 Neo4j 还是所有图数据库设计的?

我想知道 Graphileon 是仅为 Neo4j 还是所有图形数据库设计的?

Graphileon 在其网站上没有专门提及除 Neo4j 之外的图数据库。然而,从我观看的所有教程来看,他们使用 Neo4j 作为底层图形数据库。

提前致谢。

graphics graph neo4j graph-databases graphileon

3
推荐指数
1
解决办法
260
查看次数

将自然语言转换为密码查询

我正在使用 neo4j 创建电子邮件中实体之间关系的知识图。我现在需要将自然语言搜索查询转换为密码查询。我一直无法找到与此相关的任何具体信息。我该如何继续?

neo4j graph-databases cypher knowledge-graph

3
推荐指数
1
解决办法
2255
查看次数

社交应用程序的多对多关系:像Neo4j这样的Mongodb或图形数据库

我试图了解嵌入Mongodb,但找不到足够好的文档.不建议链接,因为写入在文档中不是原子的,并且还有两个查找.有人知道如何解决这个问题,或者你建议我去像neo4j这样的图表dbs.

我正在尝试构建一个需要多对多关系的应用程序.为了解释,我将以图书馆为例.它可以根据他的朋友正在阅读的书籍以及用户正在阅读的邻居(像头脑一样)向用户推荐书籍.

有用户和书籍.用户借书并拥有其他用户的朋友

  1. 鉴于用户,我需要他正在阅读的所有书籍以及该书的共同朋友数量
  2. 鉴于一本书,我需要所有阅读它的人.可以给用户A,这将返回人们阅读书籍和用户A的朋友.这是相互的友谊

用户= [

       { name: 'xyz', 'id':'000000', friend_ids:['949583','958694']}

       { name: 'abc', 'id':'000001', friend_ids:['949582','111111']}

      ]
Run Code Online (Sandbox Code Playgroud)

书籍= [

      {'book':'da vinci code', 'author': 'dan brown', 'readers'=['949583', '000000']}

      {'book':'iCon', 'author': 'Young', 'readers'=['000000', '000001']}

      ]
Run Code Online (Sandbox Code Playgroud)

如上所示,通常我需要两个文件,如果我采用mongo DB,因为我可能双向查找.将文档复制(嵌入)到另一个文档可能导致大量的重复(这些模式可以存储比显示的更多的信息).

我是否正确建模数据?这可以在mongodb中有效地完成,还是应该查看图形dbs.

many-to-many mongodb graph-databases

2
推荐指数
2
解决办法
1949
查看次数

如何将图像存储到Neo4j

我遇到了一个场景,即每个节点都用图像表示.所以我必须将图像存储到neo4j中.请听听你对我的看法.

neo4j graph-databases cypher

2
推荐指数
1
解决办法
3293
查看次数

为什么Cypher的查询速度更快?

我刚刚阅读了Neo4j官方文档的这一页.
它显示了一种Cypher方式来专门检索朋友的朋友:

MATCH (joe { name: 'Joe' })-[:knows*2..2]-(friend_of_friend)
WHERE NOT (joe)-[:knows]-(friend_of_friend)
RETURN friend_of_friend.name, COUNT(*)
ORDER BY COUNT(*) DESC , friend_of_friend.name
Run Code Online (Sandbox Code Playgroud)

为什么以下方式更快?:

MATCH path = shortestPath((joe { name: 'Joe' })-[:KNOWS*..2]-(friend_of_friend))
WHERE length(path) = 2
WITH nodes(path)[-1] AS secondDegreeFriends //retrieving the friend_of_friend nodes
RETURN secondDegreeFriends._name, COUNT(*)
ORDER BY COUNT(*) DESC , secondDegreeFriends.name
Run Code Online (Sandbox Code Playgroud)

(对于第二个查询,33ms vs 22ms,两者都在图中的182个成员的上下文中)

neo4j graph-databases cypher

2
推荐指数
1
解决办法
69
查看次数

搜索如何在neo4j中运行?

如果我们想用找一个人的细节personNameneo4j,我们需要经历所有nodes能与label person.但是relational database我们可以通过去person table找到并找到记录来做到这一点.那么,这种搜索是如何工作的neo4j?我的意思是

1)它是否首先找到所有节点,label person而不是搜索那些nodes与之匹配的节点personName

要么

2)每一个搜索node在遇到方式,比如果labelperson比检查personName.如果不匹配比去另一个node等等.

search relational-database neo4j graph-databases

2
推荐指数
1
解决办法
73
查看次数

Neo4j Merge和Atomic Transaction

MERGE在10个并行线程中从客户端应用程序对我的Neo4j服务器运行以下查询,newFoo并且id所有10个运行中的参数相同:

MERGE (foo:Foo { id: {id} })
ON MATCH
SET foo = {newFoo}
Run Code Online (Sandbox Code Playgroud)

运行此之后,我运行以下查询以期望1但我得到10:

match (f:Foo)
return count(f)
Run Code Online (Sandbox Code Playgroud)

我认为这MERGE是在原子事务中运行但显然不是.我在这里做错了吗?

更新

下面是我用来重现该问题的代码:

public static async Task RunInParallel()
{
    var client = new GraphClient(new Uri("http://localhost:7474/db/data"), "neo4j", "1234567890")
    {
        JsonContractResolver = new CamelCasePropertyNamesContractResolver()
    };

    client.Connect();

    var foo = new Foo
    {
        Id = "1",
        Name = "Foo",
        Slug = "foo-bar-foo"
    };

    List<Task> tasks = new List<Task>();
    for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

atomic neo4j graph-databases neo4jclient

2
推荐指数
1
解决办法
593
查看次数

查找具有特定关系的所有间接连接的节点Gremlin

假设我在Gremlin中使用了Node的数字ID

g.V(n_id)
Run Code Online (Sandbox Code Playgroud)

说这个节点是一个主题.

每个主题都可以有一个关系问题threadOf.

每个问题都可以有关系的答案或评论 threadOf

如果我得到一个数字ID作为输入,我想要一个gremlin查询,它返回与该主题相关的所有问题以及与这些问题相关的所有答案或评论

所有关系都是 threadOf

Gremlin有可能吗?

graph-databases gremlin gremlin-server janusgraph

2
推荐指数
1
解决办法
487
查看次数