Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 匹配包含相同标签值的所有节点,但不知道该值_Neo4j - Fatal编程技术网

Neo4j 匹配包含相同标签值的所有节点,但不知道该值

Neo4j 匹配包含相同标签值的所有节点,但不知道该值,neo4j,Neo4j,我的节点都是网络主机。其中一个属性是ip地址。我想匹配具有相同IP地址的所有主机。无需输入任何IP地址 我尝试了下面的代码-没有用。继续并最终超时。 大约25000个节点 MATCH (n), (m) WHERE ID(n) < ID(m) AND ANY(x IN n.ip WHERE x IN m.ip) RETURN n, m; 匹配(n)、(m) 其中ID(n)(m)返回r,n.domain,m.ipBrilliant,有效。是否有任何方法可以在域和IP地址之间创建关系。这可能是

我的节点都是网络主机。其中一个属性是ip地址。我想匹配具有相同IP地址的所有主机。无需输入任何IP地址

我尝试了下面的代码-没有用。继续并最终超时。 大约25000个节点

MATCH (n), (m)
WHERE ID(n) < ID(m) AND ANY(x IN n.ip WHERE x IN m.ip)
RETURN n, m;
匹配(n)、(m)
其中ID(n)
那么您只想按公共IP值对节点进行分组?您只需要一个匹配项和一个collect()即可:

MATCH (n)
WITH n.ip as ipAddress, collect(n) as nodes
WHERE size(nodes) > 1
RETURN ipAddress, nodes

如果您希望按每个ip地址的大多数节点排序,可以选择添加
按大小排序(节点)DESC

那么您只想按公共ip值对节点进行分组?您只需要一个匹配项和一个collect()即可:

MATCH (n)
WITH n.ip as ipAddress, collect(n) as nodes
WHERE size(nodes) > 1
RETURN ipAddress, nodes

如果希望按每个ip地址的节点数排序,可以选择添加
按大小排序(节点)DESC

是否需要确认密码语法的正确性?请重新陈述您的问题,以便其他人能够准确地作出贡献是的,确认提供的代码段是否应解决问题您需要确认密码语法的正确性吗?请重新陈述您的问题,以便其他人能够准确地作出贡献是的,确认提供的代码片段是否应该解决问题Brilliant,这是有效的。是否有任何方法可以在域和IP地址之间创建关系。这可能是因为它们是同一个节点的属性吗?我不知道我是否理解。关系是节点之间的关系,而不是属性之间的关系。如果有:域节点和:IPAddress节点,则可以在它们之间创建关系。我想你需要澄清一下。谢谢你的回复。我理解。我在想是否有办法使用我当前的数据集。我意识到我必须对它做一些改变。基本上,我有一个csv文件,其中包含托管域到IP地址(以及一些其他数据)。我想通过显示它们作为关系承载的域来说明大多数域的IP。听起来你需要两个单独标签的节点来实现这一点,而不是CSV的每行都有一个节点,然后每行你可以在合并的两个节点之间创建关系。我尝试了以下方法:匹配(n),(m)其中n.domain=m.domain CREATE(n)-[r:RESOLVES]->(m)返回r,n.domain,m.ipBrilliant,有效。是否有任何方法可以在域和IP地址之间创建关系。这可能是因为它们是同一个节点的属性吗?我不知道我是否理解。关系是节点之间的关系,而不是属性之间的关系。如果有:域节点和:IPAddress节点,则可以在它们之间创建关系。我想你需要澄清一下。谢谢你的回复。我理解。我在想是否有办法使用我当前的数据集。我意识到我必须对它做一些改变。基本上,我有一个csv文件,其中包含托管域到IP地址(以及一些其他数据)。我想通过显示它们作为关系承载的域来说明大多数域的IP。听起来你需要两个单独标签的节点来实现这一点,而不是CSV的每行都有一个节点,然后每行你可以在合并的两个节点之间创建关系。我尝试了以下方法:匹配(n),(m)其中n.domain=m.domain CREATE(n)-[r:RESOLVES]->(m)返回r,n.domain,m.ip