问题标签 [neo4j-apoc]

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 回答
8973 浏览

neo4j - Neo4j 安装 APOC 和图形算法 Neo.ClientError.Procedure.ProcedureRegistrationFailed

我对 APOC 和图形算法插件有一些问题。我按照说明将 .jars 放入其中{NEO4j_HOME}/plugins并更改了我的设置{NEO4j_HOME}/conf/neo4j.conf

一些程序起作用。

但是,大多数存储过程根本不起作用。

有人能指出我的设置哪里出了问题吗?谢谢。

0 投票
1 回答
3211 浏览

neo4j - 根据 cypher / apoc 中的多个条件执行多个查询

在 cypher 或 APOC 中,有没有办法根据多个条件执行多个查询。我需要类似这个 APOC 的东西

但是在这里,一旦我们遇到第一个真实条件,它就会跳过所有进一步的条件和查询。我想在我的条件为真的情况下执行所有那些查询。

简而言之,我正在寻找类似于 java case 语句的东西(没有中断;在 case 之间)

更新

我运行以下查询以使用多个 apoc.do.when 但似乎只有我的第二个 apoc.do.when 没有执行:

如果我在第一次运行时使用 _id = 1 并在第二次运行时使用 _id=2 运行上述查询两次,我希望两个事件与 LOCAL_LINK 和 EXTERNAL_LINK 连接。但我只在他们之间获得 LOCAL_LINK,而不是 EXTERNAL_LINK。我不确定我做错了什么。

注意:我使用限制 1,因为在多个匹配的情况下,我只想用一个节点创建 LINK。

更新 2

得到它的工作,在我的示例查询中,我没有从第一个apoc.do.when返回 y

这是有效的更新查询:

0 投票
3 回答
733 浏览

neo4j - neo4j-APOC 插件停止工作

插件APOC为我工作了很长时间,这意味着我将它复制到正确的位置并且我已经config正确编辑了文件。但是今天我需要在不同的数据集上创建相同的图表,所以我停止了 neo4j 服务,直接删除了数据库,重新启动它,更改了密码,然后在 neo4j 目录中复制了 plugins 目录(因为我没有使用 shell)并再次重新启动 neo4j 服务。然后尝试再次执行相同的查询并得到错误消息。 There is no procedure with the name apoc.create.relationship registered for this database instance.我正在使用的查询如下

我根据stackoverflow帖子进行了以下更改,未注释以下行

并添加插件目录路径,重新启动服务甚至重新启动系统但仍然无法正常工作。我过去多次这样做(删除 neo4j 目录...),但这从未发生在我身上。甚至我之前尝试过用新下载的替换旧的 apoc.jar。我有带有 windows10 的 apoc3.3.0.1jar 的 neo4j3.3.0。谁能告诉我这次我做错了什么?提前致谢。

编辑1:当我在config文件中取消注释上面的行时,我的其他插件也停止工作,但在评论它之后,其他插件就像graph algorithms工作但没有APOC

0 投票
1 回答
38 浏览

neo4j - 在 Neo4J 3.x 中自动填充关系索引?

在 Neo4J 2.x 中,conf 设置中有一个特殊选项可以自动索引某些关系属性。

但是如何在 3.x 中做到这一点?它可以自动填充关系索引以及可以使用哪个 APOC 函数?说明书上没找到。。。

0 投票
1 回答
140 浏览

neo4j - 使用 APOC Neo4J 3.x 从索引中删除关系

当我在 Neo4J 3.x 中删除关系时,我希望它也从使用 APOC 创建的自动索引中删除。

但是,我没有看到任何删除 APOC 中的关系的程序。我只看到removeRelationshipByName,但我必须指定关系的名称,如果我有按类型的关系怎么办?如果关系没有被删除,当我尝试按关系属性使用此索引进行搜索时,我会收到错误消息。它在索引中找到关系,但它不存在。

为了更好地了解,我创建了现有关系的索引,使用

MATCH ()-[r]->() CALL apoc.index.addRelationship(r,['user','context','statement','gapscan']) RETURN count(*);

这会为多种关系类型创建多个索引。

我还设置了一个触发器,以便每次添加关系时(无论是什么类型)都会将其添加到相应类型的索引中

CALL apoc.trigger.add('RELATIONSHIP_INDEX',"UNWIND {createdRelationships} AS r MATCH ()-[r]->() CALL apoc.index.addRelationship(r,['user','context','statement','gapscan']) RETURN count(*)", {phase:'after'})

现在,我想做的是设置一个触发器,当它们被删除时,它会从索引中删除关系。但是没有程序removeRelationship——只有removeRelationshipByName——但是,我不明白如何在那种情况下使用它。我应该提供什么名字?

0 投票
2 回答
89 浏览

neo4j - 如何在 Neo4J 3.x 中构建一个 Cypher / APOC 查询来搜索两种不同的关系类型?

目前我使用以下 Cypher / APOC 查询TO通过某个属性(userid )搜索关系类型:

我希望不仅可以搜索索引TO,还可以搜索索引ATAT关系类型),以便生成的rel参数同时包含TOAT关系。

我想这就像添加一个OR运算符一样简单,如下所示:

但它不起作用...

也许我可以做一些事情,我rel从这两个apocs 中获取 s,然后简单地将它们合并为一个rel,但我真的不知道如何做到这一点......或者也许有一种更简单的方法我没有看到?

0 投票
4 回答
522 浏览

regex - 需要正则表达式来匹配字符串中第一次出现的字符

我有一个 sql 查询作为字符串,我需要一个正则表达式来匹配字符串中的第一个问号 (?)

正则表达式应该只匹配第一次出现的问号。我将在 Neo4j-apoc 库(apoc.text.replace 函数)中使用这个正则表达式。与 Perl/Java 等不同,此库不提供任何标志或 api 来获得第一个匹配项。所以我必须完全依靠正则表达式来匹配第一个字符。

我尝试了以下一些正则表达式,但没有运气

这些正则表达式不匹配

这些正则表达式匹配所有不存在的字符和所有问号

这些正则表达式匹配所有问号

有人可以帮我写这个正则表达式吗?

0 投票
1 回答
250 浏览

neo4j - 如何使用 APOC 反转关系

call apoc.refactor.invert(rel)用来反转关系方向。当我在已经创建的关系类型的图表上尝试这个而不是rel它给出错误

类型不匹配:预期的关系,但为字符串/浮点数

当我尝试在使用以下查询创建关系时反转关系时

它给出了错误

Neo.ClientError.Statement.SyntaxError: Unknown procedure output: rel1(line 7, column 67 (offset: 232)) "call apoc.refactor.invert(rel1)

如果有人知道正确使用它,请帮助我。

0 投票
0 回答
49 浏览

neo4j - Neo4j 一种保持管道结果和重新生成变量的方法

我有一个具有两个属性的用户节点:partitaionA 和 partitionB,它们是我从图形算法包中的 unionFind 生成的。

我想做下面的事情,但像联合操作一样继续扩展。partitionA -> partitionB -> partitionA -> partitionB -> .........直到组中的用户数不增长。

是否有任何存储过程可以做这样的事情?不确定描述这个问题的最佳方式是什么。

对于数据模型,在这种情况下我只有用户节点,用户节点有 2 个属性:partitionA 和 partitionB。

0 投票
1 回答
435 浏览

neo4j - 使用 apoc.path.subgraphAll 进行密码查询,似乎限制配置不起作用

我正在执行以下查询:

我原以为我会得到 10 行,但我得到了 300 多行。不确定我是否在这里遗漏了什么?

实际上,在我的图中,可以有 100,000 个与这些关系相关的节点(CHILD_OF、CONNECTED_TO、LINKED_TO)。在这种情况下,我只想将结果限制为 1000。