问题标签 [neo4j-embedded]
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.
java - Neo4j 嵌入式:从 2.3.9 升级到 3.2.3:initial_hosts 不相互通信
我已经在 SINGLE 模式下将我的 neo4j 嵌入式数据库从 2.3.9 升级到 3.2.3,它已经成功升级。升级后,我启用了“HA”模式。在使用 3 个集群运行 neo4j 时,我面临以下问题。
个别服务器在 HA 模式下运行良好。(即 ha.initial_hosts = "ip_address_1:5101"),但如果我在 initial_hosts 下添加三台服务器(如配置所示),所有三台服务器都会立即停止。
我是否缺少任何配置?请建议。
配置:
从 neo4j debug.log:
java - 访问索引时升级 Neo4j 3.3.1 后出现 NullPointerException
我已将 Neo4j 从 2.3.8 升级到 3.3.1。访问hits = index.query(query); 我得到 nullPointerException。下面是我的代码。
您可以检查上面的代码我正在检查查询!= null,但仍然得到空指针。是索引的问题吗?
下面是错误
neo4j - 如何使用 neo4j 浏览器通过 bolt 连接到 neo4j 嵌入式实例?
我已按照文档第 4.14 节中的说明进行操作,但我不知道如何将 neo4j 浏览器连接到我的嵌入式实例。服务器运行后,我通过 neo4j 桌面打开浏览器并运行:server connect
. 这会提示我输入主机、用户名和密码。我不确定要为这些值添加什么。我已经为主机尝试了许多 、 和 的组合,localhost
并且我尝试了用户名/密码组合,例如 neo4j/neo4j、neo4j 作为带有空白密码的用户名,以及空白用户名和密码。我从来没有为数据库设置用户名和密码。无论我尝试什么,我总是会收到以下错误:localhost:7687
bolt://localhost:7687
主机、用户名和密码的正确值是什么?
neo4j - Neo4j 浏览器无法完全连接到嵌入式实例
我正在尝试使用 neo4j 浏览器连接到 neo4j 嵌入式实例,但是当我尝试连接浏览器时,只会永远显示“正在连接...”,并且浏览器控制台中会显示以下错误:Uncaught Error: Bolt V2 should always support byte arrays
. 什么可能导致这种情况?
neo4j - 如何在嵌入式 neo4j 中使用“apoc.util.md5”
我在这里找到了一些关于在嵌入式 neo4j 中启用 APOC 的代码示例。
就像我需要注册程序的类一样。(但缺乏描述。想知道是否有官方教程)
我在我的 pom.xml 中添加了这个:http://mvnrepository.com/artifact/org.neo4j.procedure/apoc/3.3.0.4
而且我想应该有一个类想apoc.util.Md5
注册,但似乎没有。
java - using Neo4j embedded in Java applications
I am trying to use Neo4j embedded in Java applications, and I am using this code:
But I got this Exception:
any idea, please
java - 通过 bolt 暴露嵌入式 Neo4J OGM 数据库
我正在使用带有 OGM 的 Neo4J 嵌入式数据库,并通过 OGM SessionFactory在目录中创建数据库服务:
这很好用,但现在我想用 Neo4J 浏览器工具浏览创建的数据库。当我阅读时,我必须通过 Bolt 公开我的数据库才能访问它。
在Neo4J Embedded 文档中,他们使用GraphDatabaseService并简单地指定一个额外的螺栓驱动程序来公开数据库:
但不幸的是,我在使用 OGM SessionFactory 时没有这个选项。我尝试使用多个 URI 调用配置生成器:
但它似乎忽略了第一个 URI(我的文件位置),而是在临时位置创建数据库。
调试输出将相应的消息记录到控制台:
谁能解释我如何通过螺栓公开我的嵌入式数据库或使用 Neo4J 浏览器以其他方式访问它?
非常感谢!
解决方案
在 meistermeier 的帮助下,我能够创建一个真正的 EmbeddedDatabase 并将我的 OGM 连接到它。我添加了螺栓连接选项,因为我在文档中找到了它们。现在,数据库已创建并通过 Bolt 正确公开。我可以连接我的 Neo4J 桌面 Windows 浏览器。
最终代码是
java - 使用 Neo4J OGM 映射树结构
我正在使用 Neo4J OGM(最新版本)将我的数据序列化到 Neo4J 嵌入式数据库中。
这适用于我的大多数实体,但是一旦我尝试保存树状结构,就需要永远保存并且似乎创建了数千个这样的关系,尽管我只是保存了一些节点:
这些展开操作也需要很长时间(这一行要长得多,只是摘录):
节点本身看起来像这样。NeoEntity 类拥有唯一的 id。
我尝试过各种关系,但都没有找到解决办法。将非常感谢任何想法。
附加信息:如果我让它运行,它会填满堆直到它崩溃:
neo4j - 理解模式和neo4j-embedded
使用嵌入 neo4j(版本 3.5.3)的理解时遇到问题。
例如,这种查询在 neo4j 企业 3.5.3 中工作得非常好,但不适用于 neo4j-embedded :
我在使用 neo4j-embedded 时遇到的错误很难理解,看起来像是一个内部错误:
任何想法 ?
neo4j - Neo4j嵌入式中的逻辑节点删除
我在嵌入式 Neo4j 实例中有以下图表:
我想找到所有不被其他人打招呼的人。这很简单:MATCH (n) WHERE NOT ()-[:GREETS]->(n) RETURN n
.
但是,每当我找到不受欢迎的人时,我想从数据库中删除这些节点并重复查询,只要它匹配一个或多个节点。也就是说,从图中的图表开始,我想:
- 运行查询,返回“Alice”
- 从数据库中删除“爱丽丝”
- 运行查询,返回“Bob”
- 从数据库中删除“鲍勃”
- 运行查询,它不返回任何匹配项
- 返回名称“Alice”和“Bob”
此外,我想在不从数据库中实际删除任何节点的情况下执行该算法——即一种“逻辑删除”。
我发现的一种解决方案是不调用success()
事务,以便不将节点删除提交给数据库,如下面的代码所示:
此代码正常工作并打印“未打招呼的人:鲍勃,爱丽丝”。
我的问题是:这种方法(即在打开的事务中保留一系列数据库操作)是否有我应该注意的缺点(例如潜在的内存问题)?我可以使用其他方法来完成此任务吗?
我还考虑在节点上使用布尔属性将它们标记为已删除或未删除。我担心的是我正在处理的实际应用程序包含数千个节点和各种关系,并且实际查询是不平凡的,所以我宁愿不更改它们以适应软删除布尔属性(但我如果事实证明这是最好的方法,我愿意这样做)。
另外,请注意,我不只是在寻找不在循环中的节点。相反,基本思想如下。我有一些满足一定条件的节点c
;我想(逻辑上)远程那些节点;这可能会使新节点满足相同的条件c
,依此类推,直到满足的节点集c
为空。