问题标签 [neo4jphp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
522 浏览

java - 无常图数据库 - 内存中的 Neo4j 和 PHP

查看文档中的单元测试,我也希望能够在 PHP 中做到这一点。我们正在使用这个库,并且我们需要对数据库进行大量测试。

使用 Neo4j 2.1.3,关于如何使用 Java 以外的编程语言完成此操作的任何想法?

0 投票
1 回答
1836 浏览

neo4j - Neo4J 服务器卡在接近 100% CPU

在 AWS EC2 实例上运行 neo4j 2.0.1 社区版本。在一些读取请求后,Neo4J 服务器卡在接近 100% 的 CPU 上。

即使没有读取或写入,CPU 也会继续卡在接近 100% 的速度。

ubuntu 'top' 命令只显示一个消耗 CPU 的 java 进程。我该如何调试?我怎么知道 neo4j 正在做什么以使 CPU 接近 100%

更新:我不断看到下面的 GC 日志:

即使没有查询命中,我也会看到很长时间的 GC 日志。我认为 GC 正在消耗接近 100% 的 CPU(或其他东西?)。

CPU 接近 100% 时的 Java-neo4j 线程转储: https ://onedrive.live.com/redir?resid=49F6403CD7EC37D4!107&authkey=!AM_esZ8nS-iPRCQ&ithint=file%2clog

0 投票
1 回答
245 浏览

neo4j - neo4j 密码 - 无法执行查询 [400],“StackOverflowError”异常

当我尝试运行长查询时出现此异常:

无法执行查询 [400]:\nHeaders: Array\n(\n [Content-Type] => application/json; charset=UTF-8; stream=true\n [Access-Control-Allow-Origin] => *\n [Transfer-Encoding] => chunked\n [Server] => Jetty(9.0.5.v20130815)\n)\nBody: Array\n(\n [exception] => StackOverflowError\n [fullname] = > java.lang.StackOverflowError\n [stacktrace] => 数组\n (\n [0] => org.neo4j.cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter.apply(Rewritable.scala:137)\n [1] => org.neo4j.cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter$$anonfun$1.apply(Rewritable.scala:137)\n [2] => scala.collection.Iterator$$anon$11。 next(Iterator.scala:328)\n [3] => scala.collection.Iterator$class.foreach(Ite​​rator.scala:727)\n [4] => scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1157)\n [5] => scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)\n [6] => scala.collection .mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [7] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45)\n [8 ] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [9] => scala.collection.AbstractIterator.to(Iterator.scala:1157)\n [10] => scala.collection .TraversableOnce$class.toList(TraversableOnce.scala:257)\n [11] => scala.collection.AbstractIterator.toList(Iterator.scala:1157)\n [12] => org.neo4j.cypher.internal.compiler .v2_1.bottomUp$BottomUpRewriter.apply(Rewritable.scala:137)\n [13] => org.neo4j.cypher.internal。compiler.v2_1.bottomUp$BottomUpRewriter$$anonfun$1.apply(Rewritable.scala:137)\n [14] => scala.collection.Iterator$$anon$11.next(Iterator.scala:328)\n [15] => scala.collection.Iterator$class.foreach(Ite​​rator.scala:727)\n [16] => scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1157)\n [17] => scala.collection. generic.Growable$class.$plus$plus$eq(Growable.scala:48)\n [18] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [ 19] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45)\n [20] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [21] => scala.collection.AbstractIterator.to(Iterator.scala:1157)\n [22] => scala.collection.TraversableOnce$class。toList(TraversableOnce.scala:257)\n [23] => scala.collection.AbstractIterator.toList(Iterator.scala:1157)\n [24] => org.neo4j.cypher.internal.compiler.v2_1.bottomUp$ BottomUpRewriter.apply(Rewritable.scala:137)\n [25] => org.neo4j.cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter$$anonfun$1.apply(Rewritable.scala:137)\n [26] => scala.collection.Iterator$$anon$11.next(Iterator.scala:328)\n [27] => scala.collection.Iterator$class.foreach(Ite​​rator.scala:727)\n [28] => scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1157)\n [29] => scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)\n [30] = > scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [31] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45)\n [32] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [33] => scala.collection .AbstractIterator.to(Iterator.scala:1157)\n [34] => scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [35] => scala.collection.AbstractIterator.toList(Iterator .scala:1157)\n [36] => org.neo4j.cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter.apply(Rewritable.scala:137)\n [37] => org.neo4j.cypher.internal .compiler.v2_1.bottomUp$BottomUpRewriter$$anonfun$1.apply(Rewritable.scala:137)\n [38] => scala.collection.Iterator$$anon$11.next(Iterator.scala:328)\n [39 ] => scala.collection.Iterator$class.foreach(Ite​​rator.scala:727)\n [40] => scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1157)\n [41] => scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)\n [42] => scala .collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [43] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45)\n [44] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [45] => scala.collection.AbstractIterator.to(Iterator.scala:1157)\n [46] => scala .collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [47] => scala.collection.AbstractIterator.toList(Iterator.scala:1157)\n [48] => org.neo4j.cypher.internal .compiler.v2_1.bottomUp$BottomUpRewriter.apply(Rewritable.scala:137)\n [49] => org.neo4j。cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter$$anonfun$1.apply(Rewritable.scala:137)\n [50] => scala.collection.Iterator$$anon$11.next(Iterator.scala:328)\ n [51] => scala.collection.Iterator$class.foreach(Ite​​rator.scala:727)\n [52] => scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1157)\n [53] => scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)\n [54] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176 )\n [55] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45)\n [56] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala: 273)\n [57] => scala.collection.AbstractIterator.to(Iterator.scala:1157)\n [58] => scala.collection。TraversableOnce$class.toList(TraversableOnce.scala:257)\n [59] => scala.collection.AbstractIterator.toList(Iterator.scala:1157)\n [60] => org.neo4j.cypher.internal.compiler。 v2_1.bottomUp$BottomUpRewriter.apply(Rewritable.scala:137)\n [61] => org.neo4j.cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter$$anonfun$1.apply(Rewritable.scala:137)\ n [62] => scala.collection.Iterator$$anon$11.next(Iterator.scala:328)\n [63] => scala.collection.Iterator$class.foreach(Ite​​rator.scala:727)\n [ 64] => scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1157)\n [65] => scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)\n [66] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [67] =>scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45)\n [68] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [69] = > scala.collection.AbstractIterator.to(Iterator.scala:1157)\n [70] => scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [71] => scala.collection.AbstractIterator .toList(Iterator.scala:1157)\n [72] => org.neo4j.cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter.apply(Rewritable.scala:137)\n [73] => org.neo4j .cypher.internal.compiler.v2_1.bottomUp$BottomUpRewriter$$anonfun$1.apply(Rewritable.scala:137)\n [74] => scala.collection.Iterator$$anon$11.next(Iterator.scala:328) \n [75] => scala.collection.Iterator$class.foreach(Ite​​rator.scala:727)\n [76] => scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1157)\n [77] => scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala :48)\n [78] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [79] => scala.collection.mutable.ListBuffer.$plus$plus $eq(ListBuffer.scala:45)\n [80] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [81] => scala.collection.AbstractIterator.to(Iterator.scala :1157)\n [82] => scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [83] => scal48)\n [78] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [79] => scala.collection.mutable.ListBuffer.$plus$plus$ eq(ListBuffer.scala:45)\n [80] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [81] => scala.collection.AbstractIterator.to(Iterator.scala: 1157)\n [82] => scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [83] => scal48)\n [78] => scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176)\n [79] => scala.collection.mutable.ListBuffer.$plus$plus$ eq(ListBuffer.scala:45)\n [80] => scala.collection.TraversableOnce$class.to(TraversableOnce.scala:27​​3)\n [81] => scala.collection.AbstractIterator.to(Iterator.scala: 1157)\n [82] => scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [83] => scal1157)\n [82] => scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [83] => scal1157)\n [82] => scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257)\n [83] => scal

询问:

开始 k=node:node_auto_index("title:abc*") 其中 k.id in [123,456,...] 返回不同的 k.prop;

上面有大约 3000 个 id 的列表。我正在使用 neo4j-community-2.1.2 和 neo4jphp。有什么解决方法吗?

0 投票
2 回答
359 浏览

neo4j - 使用 Neo4php 在 Neo4j 中创建关系耗时过长

我一直在尝试使用 neo4jphp [ https://github.com/jadell/neo4jphp/wiki]为我们的新模块创建节点和关系船。

我正在使用密码查询。

使用以下查询创建节点:

使用以下查询创建关系:

到目前为止,节点创建工作 gr8。

但是当我尝试为节点创建唯一关系时,它需要很长时间......

注意:标签 User 有唯一的约束 userid,因此带有标签 user 的节点由 Neo4j 在属性 userid 上索引。

问题:

  1. 有没有其他方法可以实现创建独特的关系。
  2. 我可以在关系上使用索引吗?如果是,我怎样才能达到同样的效果。
0 投票
1 回答
132 浏览

php - 在 neo4j 上创建命名索引

我正在将 neo4j php 用于创建索引并将节点添加到它们的示例案例

我可以通过 REST API 查看数据来查看此索引

现在我批量加载了许多演员,我是否也可以使用相同的索引来索引它们,我真的不知道如何为他们添加索引(演员的命名索引),我用来查找节点的 neo4jphp 代码仅当您为数据命名索引时才有用。

0 投票
1 回答
106 浏览

neo4j - 图数据建模 (Neo4j)

我是图形数据库的新手。我在建模数据时遇到了一些问题。我正在网站上工作,其中包含有关书籍的信息。我将书籍分类为不同的类别,例如:艺术、小说等。我为每个类别生成了一个节点。类别的节点彼此无关,并且是第一个问题出现的地方。为了解决这个问题,我将索引一个名为 category 的节点并将我的所有类别节点连接到它,这导致我进入第二个问题密集节点或超级节点。现在告诉我如何解决这两个问题。

0 投票
3 回答
453 浏览

class - neo4jphp:无法实例化抽象类 Everyman\Neo4j\Transport

也许是一个简单的问题,但对我来说作为 Neo4j 的初学者来说是一个障碍。我在与我的应用程序相同的目录中安装了带有 composer 的 neo4jphp。Vendor-Subfolder 已创建,下面的everyman/neo4j 文件夹可用。对于第一个测试,我使用了示例中的代码片段:

我总是偶然发现错误

致命错误:无法实例化抽象类 Everyman\Neo4j\Transport

谷歌搜索让我看到了 Josh Adell 的评论,他说

您不能实例化 Everyman\Neo4j\Transport,因为它是一个抽象类。您必须根据需要实例化 Everyman\Neo4j\Transport\Curl 或 Everyman\Neo4j\Transport\Stream

所以我想我只需要将使用语句更改为

但这不起作用,调试显示,自动加载器只得到“Transport.php”而不是“everyman\Neo4j\Transport\Curl.php”。对于“Client.php”它仍然有效(“vendor\everyman\Neo4j\Client.php”)所以我猜测使用语句是错误的或者代码无法处理额外的子文件夹结构。

使用

要求('phar://neo4jphp.phar');

工作正常,但我读到这已被弃用,应该由作曲家/自动加载取代。

任何人都暗示要改变什么或有同样的问题?

谢谢你的时间,巴莱尔

0 投票
1 回答
526 浏览

neo4j - Neo4j 写入性能提升

我有如下场景:

目前,上述密码查询是按顺序运行的。我需要提高写操作的性能。

我认为 p,b1,b2,b3 的创建可以并行发生。完成此操作后,p 和 b1、b2 和 b3 之间的连接可以并行发生。另外,我认为上述查询可以在一个批次中进行,而不是单独的写入操作。

我正在使用neo4jphpnode-neo4j

我认为我们有Transactional Cypher HTTP 端点批处理操作。这些是否提高了写入性能?对于上述情况,哪个更好?

看起来 neo4jphp 支持批处理和密码交易。但不确定是否可以在 node-neo4j 中实现批量/密码交易。

0 投票
1 回答
106 浏览

neo4j - CYPHER:NEO4JPHP 避免双重结果(数据库布局问题?)

作为新手,我坚持我的查询或数据库模型可能失败。我想在 neo4j 数据库中实现我的应用程序的菜单结构,以便从主/子菜单相关性中受益。

所以有 MAIN 和 SUB 选项,而 MAIN 可以有多个 SUB,但不能。

一个例子:

阿苏

在创建节点时,我使用“is_parent”在 MAIN 和 SUB 节点之间建立关系。

所以我的第一个挑战是再次从数据库中找到读取结构并构建一个相关的数组来构建菜单结构。

我在尝试:

}

但似乎我将每个菜单选项都加倍 - 好像我会遍历每个图表两次,因此我猜

a)要么我没有理解正确的查询(很可能这是我的第二次尝试) b)我的数据库模型不正确,也许我错过了另一个连接所有主菜单节点的父节点(现在它们没有连接,只有 SUB连接到相关的 MAIN)。

我使用 neo4jphp 连接到数据库。

每个提示都非常感谢。

谢谢!

PS:

我为数据制作了这个模式作为示例(顺便说一句。也许有一种方法可以使查询更紧凑?):

  1. 所以有些节点不是通过关系连接的,而是用标签标记的。

  2. 当我使用下面的查询时,我会得到与子菜单相关的所有菜单选项。我将如何更改查询以获取所有主菜单选项(所以 SUPPORT 和 HOME 也是如此)以及 sub.menu-options 之类的

    m.name s.name m:MAIN

    ADMIN GROUPS true ADMIN USER true BLOG DELETE true BLOG CREATE true BLOG EDIT true HOME NULL true SUPPORT NULL true

在 SQL 中,我使用了 LEFT JOIN 之类的东西,但在 Cypher 中我不确定。OPTIONAL没有帮助,我猜还有其他方法吗?

0 投票
1 回答
651 浏览

neo4j - Cypher:在 WHERE IN 中传递多个参数

如何为 WHERE 条件传递参数?

也就是说,这很好用:

但是,如何将多个 guid 作为此查询的参数传递:

我正在使用neo4jphp客户端,我的代码是这样的: