图形算法可以在Neo4J中获取节点和关系的属性吗?

时间:2018-04-17 18:36:21

标签: neo4j cypher graph-algorithm

我开始使用Neo4J的图形算法插件(3.3.x)并想询问插件是否可以接受节点/关系的属性,以便我可以添加这样的请求:

CALL algo.pageRank.stream('Page', 'LINKS', {iterations:20, dampingFactor:0.85})
YIELD node, score
RETURN node,score order by score desc limit 20

标记为Page的节点的某些属性(例如,仅包含时间戳> Certain_date的节点)或仅具有特定属性x的LINKS

或者如果不可能,我应该使用Cypher投影并在pageRank算法中简单地进行Cypher查询吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Cypher projection更灵敏地选择要使用图算法处理哪些节点和关系。

例如,要仅在具有特定属性Page的{​​{1}}和timestamp > 1000关系的LINKS个节点上执行algo.pageRank算法,工作:

x

注意:当Cypher投影中使用的任何一个Cypher语句都没有返回结果时,图形算法目前表现不佳(即它们会抛出异常)。上面的查询通过确保两个语句都返回一个虚节点而不是返回任何内容来解决这个问题。如果算法返回,则“包装”算法调用的Cypher语句将过滤掉虚拟节点。